急!简单的C语言问题:对调有错误吗?

王朝知道·作者佚名  2010-07-14
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

我是初学者。下面我的写的程序。

#include<stdio.h>

main()

{

int a[6],i,max,min,t,m,n;

printf("\nplease input 6 numbers:");

for(i=0;i<6;i++)

scanf("%d",&a[i]);

max=a[0];

for(i=1;i<6;i++)

if(a[i]>max)

{

max=a[i];m=i;}

min=a[0];

for(i=1;i<6;i++)

if(a[i]<min)

{

min=a[i];n=i;}

t=a[n];a[n]=a[m];a[m]=t;

printf("max=%d,min=%d\n",max,min);

for(i=0;i<6;i++)

printf("%d",a[i]);

}

为什么只能找出最大数和最小数,但不能对调呀?输出结明有问题。

參考答案:

不错,初学就已经会循环了!

在你用for语句求最大max和最小min的时候,

假如从键盘输入的是123456,那么for语句里面的if(a[i]>max){}一句都不会执行,那么m就没有被赋值,m是一个无法预测的值,在最后输出的时候就会出问题。

改正:在定义m和n的时候赋初值int m=0,n=0;这样就可以预防上面的情况了,我已经调试成功了。

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航