为了账号安全,请及时绑定邮箱和手机立即绑定

输出最大值和最小值: 从键盘上输入10个数,输出其中最大数与最小的数。

输出最大值和最小值: 从键盘上输入10个数,输出其中最大数与最小的数。

C
爷们哈哈哈鲁 2016-05-22 10:17:37
#include<stdio.h>int main(){ int a[10],i,t=0; for(i=0;i<10;i++) { scanf("%d",&a[i]); } for(i=0;i<10;i++) { if(a[i]>a[i+1]) { t=a[i]; a[i]=a[i+1]; a[i+1]=t; } } printf("%d\n%d\n",a[9],a[0]); return 0; } 为什么我写的这个程序只要输入的十个数里面有负数的话,输出的最小值却还是正数呢?求各位大神指点!!例如我输入:1 2 3 4 5 6 7 8 9 -1输出的最小值却是:1
查看完整描述

5 回答

?
慕粉3255273

TA贡献1条经验 获得超2个赞

#include<stdio.h>

int main()

{

int a[10],i,t=0,j;

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

{

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

}

for(j=9;j>=0;j--)

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

{

if(a[i]>a[i+1])

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

}

printf("%d\n%d\n",a[9],a[0]);

return 0;

 } 

你本来根本没有把程序排序,这个排序方法其实是先把最大的放到最后边,然后再把前九个里边最大的放到最后边,在吧前八个里边最大的放到最后边,但是你只做了第一步,也就是把最大的放到后边所以最大的找到了但是最小的根本没找到,你的循环体要运行九次才能找到最小的。另外如果只是为了找最大和最小根本没有必要全部排序,这样对电脑的负担会增大不少。


查看完整回答
2 反对 回复 2016-05-22
?
拒绝伸手党

TA贡献13条经验 获得超10个赞

#include<stdio.h>

int main()

{

int a[10],i,max,min;

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

{

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

}

max = a[1];

min=a[1];

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

{

if(a[i]>max)

{

max = a[i];

}

if(a[i]<min)

{

min =a[i];

}

}

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

return 0;

 } 


查看完整回答
1 反对 回复 2016-05-22
?
拒绝伸手党

TA贡献13条经验 获得超10个赞

第二个for循环语句里面的if条件不成立,没有进行t值得更改

查看完整回答
反对 回复 2016-05-22
  • 慕粉3255273
    慕粉3255273
    楼主,应该是想用排序的办法,找到最大,和最小,但是排序方法错了
?
慕粉3324679

TA贡献1条经验 获得超0个赞

可能是定义出了问题,输入的时候没有负数好像就可以了。

查看完整回答
反对 回复 2016-05-22
?
慕先生2529618

TA贡献1条经验 获得超0个赞

这个for循环不能得到最大值和最小值,你用你自己输入的数去走一遍,根本没有走for循环,没有替换过程,最后输出a【0】当然是1

查看完整回答
反对 回复 2016-05-22
  • 5 回答
  • 0 关注
  • 7018 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信