#include <stdio.h> #include <string.h> int main() { struct student { char name[50]; char major[50]; char college[50]; char campus[50]; }stu[100]; int i, n, a; char s[50]; printf("输入学生总数:"); for (int i = 0; i < n; i++) { printf("请输入第%d个学生的姓名:", i + 1); gets(stu[i].name); printf("请输入第%d个学生的专业:", i + 1); gets(stu[i].major); printf("请输入第%d个学生的学院:", i + 1); gets(stu[i].college); printf("请输入第%d个学生所在的校区:", i + 1); gets(stu[i].campus); } printf("输入要查询的学生姓名:"); gets(s); a = 0; for (int i = 0; i < n; i++) { if (strcmp(stu[i].name, s) == 0) { printf("姓名:%s,专业:%s,学院:%s,所在校区:%s\n", stu[i].name, stu[i].major, stu[i].college, stu[i].campus); a = 1; break; } } if (!a) printf("没有找到学生%s的信息!\n", s); return 0; }
时间: 2024-01-14 22:03:24 浏览: 62
在您的代码中,变量 `n` 没有被初始化,所以它的值是未知的。因此,在使用变量 `n` 前,您需要先为其赋值,例如:
```
printf("输入学生总数:");
scanf("%d", &n);
```
另外,`gets` 函数已被标记为不安全且已被废弃,建议使用 `fgets` 函数代替。例如:
```
printf("请输入第%d个学生的姓名:", i + 1);
fgets(stu[i].name, 50, stdin);
stu[i].name[strcspn(stu[i].name, "\n")] = '\0'; // 去掉输入字符串中的换行符
```
完整的代码如下:
```
#include <stdio.h>
#include <string.h>
int main() {
struct student {
char name[50];
char major[50];
char college[50];
char campus[50];
}stu[100];
int i, n, a;
char s[50];
printf("输入学生总数:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的姓名:", i + 1);
fgets(stu[i].name, 50, stdin);
stu[i].name[strcspn(stu[i].name, "\n")] = '\0'; // 去掉输入字符串中的换行符
printf("请输入第%d个学生的专业:", i + 1);
fgets(stu[i].major, 50, stdin);
stu[i].major[strcspn(stu[i].major, "\n")] = '\0';
printf("请输入第%d个学生的学院:", i + 1);
fgets(stu[i].college, 50, stdin);
stu[i].college[strcspn(stu[i].college, "\n")] = '\0';
printf("请输入第%d个学生所在的校区:", i + 1);
fgets(stu[i].campus, 50, stdin);
stu[i].campus[strcspn(stu[i].campus, "\n")] = '\0';
}
printf("输入要查询的学生姓名:");
fgets(s, 50, stdin);
s[strcspn(s, "\n")] = '\0';
a = 0;
for (int i = 0; i < n; i++) {
if (strcmp(stu[i].name, s) == 0) {
printf("姓名:%s,专业:%s,学院:%s,所在校区:%s\n", stu[i].name, stu[i].major, stu[i].college, stu[i].campus);
a = 1;
break;
}
}
if (!a) {
printf("没有找到学生%s的信息!\n", s);
}
return 0;
}
```
阅读全文