我这段代码为什么输出不了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;i++){ if(abs(s[i].time - s[i+1].time) <= 60 && abs(s[i].distance - s[i].distance)>=5){ for(int j =0;j<n;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 15:50:16 浏览: 27
这段代码有两个问题:
1. 在第二个循环中访问了数组 s 的未定义内存。当 i=n-1 时,s[i+1] 是未定义的,因为它超出了数组的边界。应该将第二个循环的终止条件改为 i<n-1。
2. 在第一个 if 语句中,abs(s[i].distance - s[i].distance) 应该改为 abs(s[i].distance - s[i+1].distance)。
修改后的代码如下:
```
#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[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){
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;
}
```
相关推荐
![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)