早教吧 育儿知识 作业答案 考试题库 百科 知识分享

最大最小值的判断#include#defineN10intfindmax(int*NUMBER);intfindmin(int*NUMBER);intmain(void){intmax;intmin;//inta;intn;int*number;for(n=0;n<10;n++){scanf("%d",&number[n]);}max=findmax(number);min=findmin(number);pri

题目详情
最大最小值的判断
#include
#define N 10
int findmax(int *NUMBER);
int findmin(int *NUMBER);
int main (void)
{
int max;
int min;
// int a;
int n;
int *number;
for (n = 0; n < 10; n++)
{
scanf("%d",&number[n]);
}
max = findmax(number);
min = findmin(number);
printf("the max number is %d\n",max);
printf("the min number is %d\n",min);
return 0;
}
int findmax(int *NUMBER)
{
int n;
int p;
int k;
n = NUMBER[0];
k = n;
for (p = 1; p < 10; p++)
{
n = NUMBER[p];
if (n > k)
k = n;
}
return k;
}
int findmin(int *NUMBER)
{
int n;
int p;
int k;
n = NUMBER[0];
k = n;
for (p = 1; p < 10; p++)
{
n = NUMBER[p];
if (n < k)
k = n;
}
return k;
}
求修改 这个程序在scanf 的时候出错 修改的程序最好是将存储10个数字的数组改为100个数字的数组,并且如果输入只有20个数字的时候就只处理20个数字,不会处理后面的空白运算.
▼优质解答
答案和解析
你在main()函数中定义了一个指针变量number,而在使用scnaf()时,用的却是指针数组number[],这显然是错的,因为指针数组number[]在先前没有被定义.而且你用scanf()扫入输入值存放到指针数组number[]中的做法也是错的,就算你先前定义了一个int型的*number[10],由于这是一个空指针,其中的所有元素都不指向任何内存(即,系统没有为其分配内存),数据是存不进去的,所以就报错了.