kevinde2022 发表于 2022-10-31 14:52:03

数字排序问题

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

    return 0;
    }

tommyyu 发表于 2022-10-31 15:01:05

圈圈的大括号的位置加错了,应该这样写:
if (a>a){
      temp = a;
      a = a;
      a = temp;}

kevinde2022 发表于 2022-10-31 15:17:23

tommyyu 发表于 2022-10-31 15:01
圈圈的大括号的位置加错了,应该这样写:
if (a>a){
      temp = a;


谢谢,我眼瞎{:5_107:}

kevinde2022 发表于 2022-10-31 15:19:40

kevinde2022 发表于 2022-10-31 15:17
谢谢,我眼瞎

可是为什么加在if前面就不对呢

tommyyu 发表于 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^"); 两条语句

kevinde2022 发表于 2022-10-31 15:58:12

tommyyu 发表于 2022-10-31 15:30
因为 if 语句默认是把后面的一个语句当作 if 语句下的内容
例子:



原来如此 三克油
页: [1]
查看完整版本: 数字排序问题