作业帮 > 综合 > 作业

一道C语言习题,求高手指出我的错误

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 13:38:55
一道C语言习题,求高手指出我的错误
我是初学者,在书上看到一个练习题,要求输入10个数,把最小的数和第一个数对调,再输出,这是我写的程序,没有报错,但输出时都是输入的样子,求高手指出错误,希望用一些通俗的语法,
#include
int main(){
\x05int a[10];
\x05printf("Please put in 10 nimber:\n");
\x05for(int i=0;i
一道C语言习题,求高手指出我的错误
这段代码并不是输入任何一组数据都会出现错误,如果输入:1,2,3,4,5,6,0,7,8,9的时候,并没有任何问题,但是当输入了:9,8,7,6,5,4,3,2,1,0,会发现输出时都是输入的样子.
原因是这样的:
1、8-9行是2个for循环,两两数字比较,标记最小数.
2、我们直接模拟循环即将结束时,当p=9,q=8是,a[9]=0,a[8]=1,执行第11行,sum1[9]=9(这个应该是sum1第一次出现9的时候)
3、第13行满足条件,执行,这时,a[9]=9,a[0]=0
4、可这时for循环并没有结束,当p=9,q=9时,此时sum1[9]还是等于9
5、故执行第13行,a[9]=0,a[0]=9,将之前数字又切换回来.
6、所以就会出现输出时与输入时一样