dwxll 发表于 2020-12-17 22:51

c语言程序if条件下语句不运行

题目在此
输入样例
8
2018/1/8 1024
2012/10/31 256
2014/10/29 300
2012/10/31 457
2014/10/27 512
2011/10/27 95
2014/11/3 1102
2017/11/24 1535
输出样例
2018/1/8 1024
2017/11/24 1535
2014/11/3 1102
2014/10/29 300
2014/10/27 512
2012/10/31 457
2012/10/31 256
2011/10/27 95

2012/10/31 457
2012/10/31 256
这两个死活换不过来
这是我的代码
求大佬看下

#include<stdio.h>
int a;
void swap(int b,int c)
{
    for (int i = 0; i < 4;i++)
    {
      int z = a;
      a = a;
      a = z;
    }
}//前四个与后四个交换
int main()
{
    int n;
    scanf("%d", &n);
    int i;
    for (i = 1; i <= n * 4; i += 4)
    {
      scanf("%d/%d/%d %d", &a, &a, &a, &a);//使用数组a每四个储存空间来保存一个文件的属性
    }//每四个中,第一个为年,第二个为月,第三个为日,第四个为大小
    int j;
    for (i = 1; i < n; i++)
    {
      for (j = 1; j <= n * 4; j += 4)
      {
            if (a < a)
                swap(j, j + 4);
            if (a == a && a < a)
                swap(j, j + 4);
            if (a == a && a == a && a < a)
                swap(j, j + 4);
            if (a == a && a == a && a == a && a < a)//就是这一栏出现问题了
            {
                swap(j, j + 4);
                printf("123");//判断这个if语句是否运行
            }
      }
    }
    for (i = 1; i < n * 4;i+=4)
    {
      printf("%d/%d/%d %d\n", a, a, a, a);
    }
      return 0;
}

dwxll 发表于 2020-12-17 22:55

题目简单来说就是对一系统数据(年/月/日 大小)排序
考虑先后顺序是年、月、日、大小,都是按照从小到大的顺序排

蓝色魅影 发表于 2020-12-18 08:39

swap(a,a);

肥皮 发表于 2020-12-18 09:02

你这个SWAP有点东西

dwxll 发表于 2020-12-18 09:17

领悟者的涂鸦笔 发表于 2020-12-18 00:54
你这个swap()函数简直惊讶到我了。
这题目说难倒也不难,先Mark,天亮了再做。

swap有问题吗。。。
对呀,是不难就是正确不了:'(weeqw

dwxll 发表于 2020-12-18 09:19

蓝色魅影 发表于 2020-12-18 08:39
swap(a,a);

我这个传入的参数只要告诉函数是数组里哪个下标的数要换就行了,不需要传实际的数。。。

dwxll 发表于 2020-12-18 09:20

肥皮 发表于 2020-12-18 09:02
你这个SWAP有点东西

之前用结构体指针运行不了,弄了半天还是用低端一点的互换函数了。。。:'(weeqw

unisong 发表于 2020-12-18 11:19

实际上第3个if也没有起作用{:1_926:}

unisong 发表于 2020-12-18 11:28

第3个if和第4个if里面的 a == a 应该是 (a == a

dwxll 发表于 2020-12-18 12:38

unisong 发表于 2020-12-18 11:28
第3个if和第4个if里面的 a == a 应该是 (a == a

感谢大佬!!!!!:'(weeqw
页: [1] 2
查看完整版本: c语言程序if条件下语句不运行