propop 发表于 2019-8-18 14:10:23

新手编写求最大值,结果总是一个很大的数,求指正,谢谢了

#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);
}

清尘yt 发表于 2019-8-18 14:50:29

问题:数组遍历错误,应是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);
}

Python.爱好者 发表于 2019-8-18 17:53:14

c没有赋初值,m本来也没有赋初值,m=c后依然没有赋初值
应该是m=1<<31(int的最小值)。

python_小蟒蛇 发表于 2019-8-18 21:27:04

你在定义 C数组时没有初始化然后直接将C的值赋给了m,   那么此时m的值是多少????
后面的程序你也没有再给M赋值,所以出现错误很正常,我建议后面写程序时一定要给变量赋初值,以免发生未知错误。。。。。
页: [1]
查看完整版本: 新手编写求最大值,结果总是一个很大的数,求指正,谢谢了