**已关闭。**此问题需要debugging details。它目前不接受回答。
编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答这个问题。
9天前关闭。
社区在9天前审查了是否重新打开此问题,并将其关闭:
原始关闭原因未解决
Improve this question
zsh: segmentation fault "/Applications/XAMPP/xamppfiles/htdocs/demo/"03_EMP
这是我大学第一年的代码,现在我在第三年,但我仍然不知道它有什么问题。
为了避免这个错误“看起来你的帖子大部分是代码;请多加一些细节。
#include<stdio.h>
#include<string.h>
struct emp{
int no, sal, age;
char name[10], desi[30];
};
int main(){
struct emp e[5];
int n[5], temp = 0, x = 5;
for (int i = 0; i<5; i++){
printf("-->Enter Employee %d details.\n",i+1);
printf("\tNo: ");
scanf("%d",&e[i].no);
printf("\tName: ");
scanf("%s",e[i].name);
printf("\tSalary: ");
scanf("%d",&e[i].sal);
printf("\tDesignation: ");
scanf("%s",e[i].desi);
printf("\tAge: ");
scanf("%d",&e[i].age);
n[i] = e[i].sal;
}
for (int i = 0; i<x; ++i){
for(int j=i+1;i<x;++j){
if (n[i]<n[j]){
temp = n[i];
n[i] = n[j];
n[j] = temp;
}
}
}
// 1: Display the information of employee who’s age is greater
// than 30 and designation=”manager”.
for (int i = 0; i < 5; i++){
printf("%d ",n[i]);
if (e[i].age>30 && !strcmp(e[i].desi,"manager")){
printf("\n-->Info who's age>30 && Designation = \"manager\"");
printf("\tNo: %d\n",e[i].no);
printf("\tName: %s\n",e[i].name);
printf("\tDesignation: %s\n",e[i].desi);
printf("\tSalary: %d\n",e[i].sal);
printf("\tAge: %d\n",e[i].age);
}
}
// 2: Display the information of all employees according to the
for (int i = 0; i < 5; i++){
for (int j =0; i<5;j++){
if (n[i]==e[j].sal){
printf("\n-->Info who's age>30 && Designation = \"manager\"");
printf("\tNo: %d\n",e[i].no);
printf("\tName: %s\n",e[i].name);
printf("\tDesignation: %s\n",e[i].desi);
printf("\tSalary: %d\n",e[i].sal);
printf("\tAge: %d\n",e[i].age);
}
}
}
return 0;
}
型
1条答案
按热度按时间toe950271#
int j=i+1;i<x;++j
=>j
将增长并且永远不会停止增长(并且您将访问其边界之外的数组),因为i < x
将始终为true。在你的代码中的更多地方出现同样的错误。
如果你不使用无意义的变量名,你就不会有这个问题。