鱼C论坛

 找回密码
 立即注册
查看: 2834|回复: 5

[已解决]数字排序问题

[复制链接]
发表于 2022-10-31 14:52:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
输入10个数排序,感觉temp那块有问题,具体哪里错了求教。
#include <stdio.h>
#include <math.h>
int main(void)
    {
    int i,j,temp,a[10];
    for (i=0;i<=9;i++)
    {
      scanf("%d",&a[i]);
    }
    for (i=0;i<=8;i++)
        {
          for (j=i+1;j<=9;j++)
          {if (a[i]>a[j])
              temp = a[i];
              a[i] = a[j];
              a[j] = temp;}
        }
    for (i=0;i<=9;i++)
    {
      printf("%d",a[i]);
    }

    return 0;
    }
最佳答案
2022-10-31 15:01:05
圈圈的大括号的位置加错了,应该这样写:
if (a[i]>a[j]){
      temp = a[i];
      a[i] = a[j];
      a[j] = temp;}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-31 15:01:05 | 显示全部楼层    本楼为最佳答案   
圈圈的大括号的位置加错了,应该这样写:
if (a[i]>a[j]){
      temp = a[i];
      a[i] = a[j];
      a[j] = temp;}
屏幕截图 2022-10-31 145958.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-31 15:17:23 | 显示全部楼层
tommyyu 发表于 2022-10-31 15:01
圈圈的大括号的位置加错了,应该这样写:
if (a>a[j]){
      temp = a;

谢谢,我眼瞎
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-31 15:19:40 | 显示全部楼层

可是为什么加在if前面就不对呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-31 15:30:06 | 显示全部楼层
本帖最后由 tommyyu 于 2022-10-31 15:31 编辑
kevinde2022 发表于 2022-10-31 15:19
可是为什么加在if前面就不对呢


因为 if 语句默认是把后面的一个语句当作 if 语句下的内容
例子:
if(1+1 == 2)
printf("1+1=2");
printf("^o^");
上面的代码中,由于没有括号,所以 if 语句下的内容只有 printf("1+1=2"); 这一句。
如果代码变成
if(1+1 == 2) {
printf("1+1=2");
printf("^o^");
}
if 语句下就会有printf("1+1=2"); 和 printf("^o^"); 两条语句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-31 15:58:12 | 显示全部楼层
tommyyu 发表于 2022-10-31 15:30
因为 if 语句默认是把后面的一个语句当作 if 语句下的内容
例子:

原来如此 三克油
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 00:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表