C语言求十个数最大值

来源:百度知道 编辑:UC知道 时间:2024/07/02 07:24:45
#include <stdio.h>
void main ()
{
int a[10];
int i,max
max=a[0];
for(i=0;i<10;i++)
scanf("%d",&a[10]);
if(max<a[i])
max=a[i];
printf("%d",max);
}

错哪儿啊

不要意思,错误比较多。。。。

1、第5行结尾少了分号;
2、第6行max=a[0]最好写到scanf("%d",&a[i]);的后面,因为数组a[10]定义的时候没有初始化,所以a[10]里面存放的有10个数(内存中原有的),这时的max得到的数可能比你输入的10个数都大,这样你的程序就没有用处了
3、第8行的a[10]要改成a[i],这样才能输入10个数给a[0]到a[9],不然就全赋给a[9]了,没有意义
4、你的for循环只是控制输入10个数,还是同时判断大小?如果只是控制输入,那么第9行到第10行改成:
for(i=0;i<10;i++)
{
if(max<a[i])
max=a[i];
}
这样是先输入10个数,再求最大值

如果你是想一边输入一遍判断,那么你的max的初值就不好赋值(原因见第2条错误),除非你输入的全是正数,那么可以先赋值max=0,再输入并判断大小;否则只能是单独在输入a[0]的时候把a[0]赋值给max,然后再9个循环输入并判断其他数,建议最好还是先输入10个数,再求最大值的写法。

楼主的编程思想和习惯还要多加练习~~

声明的时候“int i,max”后面忘记写“;”了
首先你的 变量max初始化就是不对,因为新申请的数组a[10]里的数据时随意的,所以你那一句max=a[0]是未能预料的
for(i=0;i<10;i++)
scanf("%d",&a[10]);
循环语句错了,因为这个地方根本没有把数据送到数组里,只是送到a[10]里,

把循环语句改成如下

for(i=0;i<10;i++)
scanf("%d",&a[i]);

还有后面比较的时候要加循环语句
for (i=1;i<10;i++)
{
if(max<a[i])
max=a[i];
}