吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1464|回复: 11
收起左侧

[求助] c语言程序if条件下语句不运行

[复制链接]
dwxll 发表于 2020-12-17 22:51
题目在此 1.png
输入样例
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[400];
void swap(int b,int c)
{
for (int i = 0; i < 4;i++)
{
int z = a[b + i];
a[b + i] = a[b + i + 4];
a[b + i + 4] = z;
}
}//前四个与后四个交换
int main()
{
int n;
scanf("%d", &n);
int i;
for (i = 1; i <= n 4; i += 4)
{
scanf("%d/%d/%d %d", &a[i], &a[i + 1], &a[i + 2], &a[i + 3]);//使用数组a每四个储存空间来保存一个文件的属性
}//每四个中,第一个为年,第二个为月,第三个为日,第四个为大小
int j;
for (i = 1; i < n; i++)
{
for (j = 1; j <= n
4; j += 4)
{
if (a[j] < a[j + 4])
swap(j, j + 4);
if (a[j] == a[j + 4] && a[j + 1] < a[j + 5])
swap(j, j + 4);
if (a[j] == a[j + 1] && a[j + 1] == a[j + 5] && a[j + 2] < a[j + 6])
swap(j, j + 4);
if (a[j] == a[j + 1] && a[j + 1] == a[j + 5] && a[j + 2] == a[j + 6] && a[j + 3] < a[j + 7])//就是这一栏出现问题了
{
swap(j, j + 4);
printf("123");//判断这个if语句是否运行
}
}
}
for (i = 1; i < n * 4;i+=4)
{
printf("%d/%d/%d %d\n", a[i], a[i + 1], a[i + 2], a[i + 3]);
}
return 0;
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| dwxll 发表于 2020-12-17 22:55
题目简单来说就是对一系统数据(年/月/日 大小)排序
考虑先后顺序是年、月、日、大小,都是按照从小到大的顺序排
蓝色魅影 发表于 2020-12-18 08:39
肥皮 发表于 2020-12-18 09:02
 楼主| dwxll 发表于 2020-12-18 09:17
领悟者的涂鸦笔 发表于 2020-12-18 00:54
你这个swap()函数简直惊讶到我了。
这题目说难倒也不难,先Mark,天亮了再做。

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

免费评分

参与人数 1吾爱币 +1 收起 理由
领悟者的涂鸦笔 + 1 https://www.52pojie.cn/thread-1332026-1-1.html

查看全部评分

 楼主| dwxll 发表于 2020-12-18 09:19

我这个传入的参数只要告诉函数是数组里哪个下标的数要换就行了,不需要传实际的数。。。
 楼主| dwxll 发表于 2020-12-18 09:20
肥皮 发表于 2020-12-18 09:02
你这个SWAP有点东西

之前用结构体指针运行不了,弄了半天还是用低端一点的互换函数了。。。
unisong 发表于 2020-12-18 11:19
实际上第3个if也没有起作用
unisong 发表于 2020-12-18 11:28
第3个if和第4个if里面的 a[j] == a[j + 1] 应该是 (a[j] == a[j + 4]

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
dwxll + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| dwxll 发表于 2020-12-18 12:38
unisong 发表于 2020-12-18 11:28
第3个if和第4个if里面的 a[j] == a[j + 1] 应该是 (a[j] == a[j + 4]

感谢大佬!!!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-29 22:00

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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