新手编写求最大值,结果总是一个很大的数,求指正,谢谢了
#include<stdio.h>void main()
{
int max(int a ,int b);
int c,i,m=c;
printf("input 10 numbers: \n");
for (i=1;i<10;i++)
{
scanf("%d",&c);
}
putchar('\n');
for(i=1;i<10;i++)
{
if (max(m,c)>m)
{
m=max(c,m);
}
}
printf("the max is %d \n",m);
}
int max(int a ,int b)
{
return(a>b?a:b);
} 问题:数组遍历错误,应是for (i=0;i<10;i++),不然数组越界
解决方案:
#include<stdio.h>
void main()
{
int max(int a ,int b);
int c,i,m=c;
printf("input 10 numbers: \n");
for (i=0;i<10;i++)
{
scanf("%d",&c);
}
putchar('\n');
for(i=0;i<10;i++)
{
if (max(m,c)>m)
{
m=max(c,m);
}
}
printf("the max is %d \n",m);
}
int max(int a ,int b)
{
return(a>b?a:b);
} c没有赋初值,m本来也没有赋初值,m=c后依然没有赋初值
应该是m=1<<31(int的最小值)。 你在定义 C数组时没有初始化然后直接将C的值赋给了m, 那么此时m的值是多少????
后面的程序你也没有再给M赋值,所以出现错误很正常,我建议后面写程序时一定要给变量赋初值,以免发生未知错误。。。。。
页:
[1]