永发信息网

一个简单的C语言问题,哪错了啊

答案:6  悬赏:80  手机版
解决时间 2021-07-18 02:16
  • 提问者网友:寂寞梧桐
  • 2021-07-17 17:02

如下:

# include<stdio.h>
main ( )
{ int a [11];
int i, j, t,n;
printf (" please input 10 n~:\n ");
for (i=1;i<=n;i++)
scanf(" %d ", &a[i]);
printf(" \n ");
for (i=1; i<=9; i++)
for (j=i+1; j<=10; j++)
if (a[i]>a[j])
{ t=a[i]; a[i]=a[j]; a[j]=t;}
printf (" the sorted numbers: \n ");
for (i=1; i<=10; i++)
printf(" %d ", a[i];
}

最佳答案
  • 五星知识达人网友:玩世
  • 2021-07-17 18:16

你的题是排序吧!可是你没有给n赋值,而且在最后输出时缺了一个):

全部回答
  • 1楼网友:夜风逐马
  • 2021-07-17 23:40

你这个问题是你的循环出错了 首先说一下加入人家输入 11 你的循环只有九。。。。。。 而且你的第一数根本就没有进行排序。。。。。 a[0] 还有就是 当有这样的组合 3 2 4 1 按照你的循环 3》2就把2和3的位置调换 但是2 就不进行向下比较了 但是明显后面有1比2小

我帮你改一下看下可以不 我也是菜鸟 改错莫怪哈

for(i=0;i<=9;i++)// 每个数比较十次好像叫什么起泡法

for(j=0;j<=9;j++)

{ if(a[j]>a[j+1])

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

} 呵呵 如果错了请不要见怪

  • 2楼网友:污到你湿
  • 2021-07-17 22:15

输出排序后的数组要从0开始的

  • 3楼网友:几近狂妄
  • 2021-07-17 21:00
int i,j,t,n; 这个地方的n有问题,你再看for(i=1;i<=n;i++)这句,没有对n赋值
  • 4楼网友:拾荒鲤
  • 2021-07-17 20:50
符号错了。同学。用心啊’
  • 5楼网友:duile
  • 2021-07-17 19:55
a[i]后面少了个括号
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯