请有人找到我的代码中的错误所在,因为当我尝试运行该程序时,错误消息显示如下:停止工作并关闭
问题描述:
#include <stdio.h>
struct subjectRecord
{
char subjectCode;
char subjectName;
char lecturer;
int creditHour;
}subject[3];
int main(void)
{
int a;
for(a = 0; a <3; a++)
{
printf("\nEnter Subject Code: ");
scanf("%s", &subject[a].subjectCode);
printf("Enter Subject Name: ");
scanf("%s", &subject[a].subjectName);
printf("Enter Lecturer Name: ");
scanf("%s", &subject[a].lecturer);
printf("Enter Credit Hour: ");
scanf("%d", &subject[a].creditHour);
}
for(a = 0; a <3; a++)
{
printf("Subject Code :%s\n",subject[a].subjectCode);
printf("Subject Name: %d %d%d\n", subject[a].subjectName);
printf("Lecturer Name:%s\n",subject[a].lecturer);
printf("Credit Hour:%s\n",subject[a].creditHour);
}
}
请有人找到我的代码中的错误所在,因为当我尝试运行该程序时,错误消息显示如下:停止工作并关闭
Please could someone find where the error in my code is, as when I try to run the program an error message is displayed as follows: stopped working and close down
答
您的subjectCode. subjectName和讲师变量被声明为字符,但是您将它们用作字符数组.将它们声明为字符数组,而不只是字符.
Your subjectCode. subjectName and lecturer variables are declared as characters but you are using them as character arrays. Declare them as character arrays instead of just characters.
#include <stdio.h>
struct subjectRecord
{
char subjectCode[20];
char subjectName[50];
char lecturer[100];
int creditHour;
}subject[10];
int main(void)
{
int a;
for(a = 0; a <10; a++)
{
printf("\nEnter Subject Code: ");
scanf("%s", &subject[a].subjectCode);
printf("Enter Subject Name: ");
scanf("%s", &subject[a].subjectName);
printf("Enter Lecturer Name: ");
scanf("%s", &subject[a].lecturer);
printf("Enter Credit Hour: ");
scanf("%d", &subject[a].creditHour);
}
for(a = 0; a <10; a++)
{
printf("\nSubject Code :%s\n",subject[a].subjectCode);
printf("Subject Name: %s\n", subject[a].subjectName);
printf("Lecturer Name:%s\n",subject[a].lecturer);
printf("Credit Hour:%d\n",subject[a].creditHour);
}
}