

โจทย์ รับตัวเลข 5 ตัว แล้วพิมพ์ค่าตัวเลขที่มากที่สุด ทั้งในการเปรียบเทียบตัวเลข จะต้องใช้ฟังก์ชัน max แทนการเปรียบเทียบตัวเลข
int* max(int *a,int *b);
ฟังก์ชันจะคืนค่าพอยเตอร์ที่ชี้ไปยังข้อมูลที่มากกว่า
หมายเหตุ
1.ห้ามตัวเลขไว้ในอาร์เรย์หรือเทียบเท่า
2.ให้ตั้งสมมติฐานว่า ผู้ใ้จะไม่ใส่ตัวเลขติดลบ
ตัวอย่างโปรแกรมที่ผมเขียนได้
#include<stdio.h>
#define NUM 5
int* max(int* a, int *b);
int main(){
int i,num,Max=0,count;
for(i = 0; i < NUM; i++){
printf("N%d: ", i+1);
scanf("%d",&num);
count =max(&num,&Max);
Max = num;
}
printf("= %d",count);
return 0;
}
int* max(int* a, int *b){
if(*a>*b){
return *a;
}
}
ช่วยดูให้หน่อยครับว่ายังผิดตรงไหน ต้องแก้ยังไง พอรันแล้วมันขึ้นตัวเลขที่ใส่มาตัวแรก พอดีเพิ่งเรียนเรื่องนี้มาไม่เข้าใจเลย
ช่วยอธิบายเรื่อง pointer ด้วยจะดีมากครับ ขอบคุณครับ
อยากถามโจทย์เรื่อง pointer ภาษาซี
int* max(int *a,int *b);
ฟังก์ชันจะคืนค่าพอยเตอร์ที่ชี้ไปยังข้อมูลที่มากกว่า
หมายเหตุ
1.ห้ามตัวเลขไว้ในอาร์เรย์หรือเทียบเท่า
2.ให้ตั้งสมมติฐานว่า ผู้ใ้จะไม่ใส่ตัวเลขติดลบ
ตัวอย่างโปรแกรมที่ผมเขียนได้
#include<stdio.h>
#define NUM 5
int* max(int* a, int *b);
int main(){
int i,num,Max=0,count;
for(i = 0; i < NUM; i++){
printf("N%d: ", i+1);
scanf("%d",&num);
count =max(&num,&Max);
Max = num;
}
printf("= %d",count);
return 0;
}
int* max(int* a, int *b){
if(*a>*b){
return *a;
}
}
ช่วยดูให้หน่อยครับว่ายังผิดตรงไหน ต้องแก้ยังไง พอรันแล้วมันขึ้นตัวเลขที่ใส่มาตัวแรก พอดีเพิ่งเรียนเรื่องนี้มาไม่เข้าใจเลย
ช่วยอธิบายเรื่อง pointer ด้วยจะดีมากครับ ขอบคุณครับ