修改我这段代码使其可以输出struct clockRecords{ int id; int time; int distance; char actualDeviceNumber[100]; char registeredDeviceNumber[100]; }; int main(){ int n; scanf("%d",&n); struct clockRecords s[100]; for(int i =0;i<n;i++){ scanf("%d,%d,%d,",&s[i].id,&s[i].time,&s[i].distance); scanf("%s,",&s[i].actualDeviceNumber); scanf("%s,",&s[i].registeredDeviceNumber); } for(int i =0;i<n-1;i++){ if(abs(s[i].time - s[i+1].time) <= 60 && abs(s[i].distance - s[i+1].distance)>=5){ for(int j =0;j<n-1-i;j++){ printf("%d,%d,%d,%s,%s\n",s[i].id,s[i].time,s[i].distance,s[i].actualDeviceNumber,s[i].registeredDeviceNumber); break; } } else if( strcmp(s[i].actualDeviceNumber,s[i].registeredDeviceNumber) !=0){ printf("%d,%d,%d,%s,%s,\n",s[i].id,s[i].time,s[i].distance,s[i].actualDeviceNumber,s[i].registeredDeviceNumber); } } return 0; }
时间: 2024-03-01 20:50:29 浏览: 23
您可以试着修改以下代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct clockRecords {
int id;
int time;
int distance;
char actualDeviceNumber[100];
char registeredDeviceNumber[100];
};
int main(){
int n;
scanf("%d", &n);
struct clockRecords s[100];
for(int i = 0; i < n; i++){
scanf("%d,%d,%d,%[^,],%s", &s[i].id, &s[i].time, &s[i].distance, s[i].actualDeviceNumber, s[i].registeredDeviceNumber);
}
for(int i = 0; i < n - 1; i++){
if(abs(s[i].time - s[i + 1].time) <= 60 && abs(s[i].distance - s[i + 1].distance) >= 5){
printf("%d,%d,%d,%s,%s\n", s[i].id, s[i].time, s[i].distance, s[i].actualDeviceNumber, s[i].registeredDeviceNumber);
} else if(strcmp(s[i].actualDeviceNumber, s[i].registeredDeviceNumber) != 0){
printf("%d,%d,%d,%s,%s\n", s[i].id, s[i].time, s[i].distance, s[i].actualDeviceNumber, s[i].registeredDeviceNumber);
}
}
return 0;
}
```
主要修改点如下:
1. 在读入 actualDeviceNumber 和 registeredDeviceNumber 时,使用了 `%[^,]` 代替 `%s`,以避免读入逗号,同时在末尾加上了 `,`,以消耗掉输入缓冲区中的多余逗号。
2. 在输出时,条件语句中的 `break` 已经被去除,避免只输出了匹配的第一个记录。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)