请问这里为什么会出错

img

img

img

为啥要用getchar呢, 直接循环读取10个数就行了

一楼说得很对,你下面都会用for循环了,上面用个for语句就行了,不必再弄getchar,不然数字也会被当作字符

直接分析你的输入结果吧,你实际上输入的是:5(空格)6(换行符),程序运行到第7行,getchar()获取单个字符5,满足测试条件,执行循环。程序运行到第9行,scanf()跳过空格读取了6,然后把换行符留在了缓冲区,然后在下一次循环的时候换行符就被getchar()读取后赋给了c,不满足测试条件,于是循环结束。之后开始执行第12行以及后面的for循环,在for循环中,由于你除了a[0]赋值了之外,其它a数组的元素都没初始化,所以那些元素内部可能会是随机数。而且,你的if语句也写错了,你这个是用来求最大值的。所以最后你得到了a数组内的一个最大值。