#define _CRT_SECURE_NO_WARNIMGS
#include
#include
#include
#include
struct student
{
char name[20];
int score;
};
void input(int* n_, struct student stu[])
{
printf("输入%d个学生的姓名和成绩\n", *n_);
for (int i = 0;i < *n_;i++)
{
scanf_s("%s", stu[i].name);
scanf_s("%d", &stu[i].score);
}
}
void output(int* n_, struct student stu[])
{
for (int i = 0;i < *n_;i++)
{
printf("%s %d", stu[i].name, stu[i].score);
}
}
void sort(int* n_, struct student stu[])
{
int i, j, n;
char a[20], b[20];
for (i = 0;i < *n_;i++)
{
for (j = i + 1;j < *n_;j++)
{
if (stu[i].score < stu[j].score)
{
n = stu[i].score;
stu[i].score = stu[j].score;
stu[j].score = n;
strncpy_s(a, stu[i].name, 5);
strncpy_s(b, stu[j].name, 5);
strncpy_s(stu[j].name, a, 5);
strncpy_s(stu[i].name, b, 5);
}
}
}
}
void searchxingming(int* n_, struct student stu[])
{
int k = 0;
char m[1];
printf("输入查询姓名:\n");
scanf_s("%s", &m);
for (int i = 0;i < *n_;i++)
{
if (stu[i].name == m)
{
printf("%d\n", stu[i].score);
k = 1;
break;
}
}
if (k == 0)
{
printf("无");
}
}
void searchchengji(int* n_, struct student stu[])
{
int m, k = 0;
printf("输入查询成绩:\n");
scanf_s("%d", &m);
for (int i = 0;i < *n_;i++)
{
if (stu[i].score == m)
{
printf("%d\n", stu[i].name);
k = 1;
break;
}
}
if (k == 0)
{
printf("无");
}
}
void start()
{
printf("1.学生成绩的输出\n");
printf("2.按成绩查询学生信息\n");
printf("3.按姓名查询某学生信息并输出\n");
printf("4.按照成绩由高到低排序并输出\n");
printf("选择对应的功能");
}
int read()
{
int j;
scanf_s("%d", &j);
return j;
}
int main()
{
printf("输入学生的个数");
int m;
int* n_ = &m;
scanf_s("%d", &m);
struct student stu[100];
input(n_, &stu[0]);
while (1)
{
start();
switch (read())
{
case 1:output(n_, &stu[0]);
break;
case 2:searchchengji(n_, &stu[0]);
break;
case 3:searchxingming(n_, &stu[0]);
break;
case 4:sort(n_, &stu[0]);break;
}
}return 0;
}
scanf_s("%s", stu[i].name);
改成
scanf_s("%s", stu[i].name,20);
#define _CRT_SECURE_NO_WARNIMGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
struct student
{
char name[20];
int score;
};
void input(int* n_, struct student stu[])
{
printf("输入%d个学生的姓名和成绩\n", *n_);
for (int i = 0;i < *n_;i++)
{
scanf_s("%s", stu[i].name,20);
scanf_s("%d", &stu[i].score);
}
}
void output(int* n_, struct student stu[])
{
for (int i = 0;i < *n_;i++)
{
printf("%s %d\n", stu[i].name, stu[i].score);
}
}
void sort(int* n_, struct student stu[])
{
int i, j, n;
char a[20], b[20];
for (i = 0;i < *n_;i++)
{
for (j = i + 1;j < *n_;j++)
{
if (stu[i].score < stu[j].score)
{
n = stu[i].score;
stu[i].score = stu[j].score;
stu[j].score = n;
strcpy(a, stu[i].name);
strcpy(b, stu[j].name);
strcpy(stu[j].name, a);
strcpy(stu[i].name, b);
}
}
}
}
void searchxingming(int* n_, struct student stu[])
{
int k = 0;
char m[20];
printf("输入查询姓名:\n");
scanf_s("%s", &m,20);
for (int i = 0;i < *n_;i++)
{
if (strcmp(stu[i].name,m)==0)
{
printf("%d\n", stu[i].score);
k = 1;
break;
}
}
if (k == 0)
{
printf("无");
}
}
void searchchengji(int* n_, struct student stu[])
{
int m, k = 0;
printf("输入查询成绩:\n");
scanf_s("%d", &m);
for (int i = 0;i < *n_;i++)
{
if (stu[i].score == m)
{
printf("%s\n", stu[i].name);
k = 1;
break;
}
}
if (k == 0)
{
printf("无");
}
}
void start()
{
printf("1.学生成绩的输出\n");
printf("2.按成绩查询学生信息\n");
printf("3.按姓名查询某学生信息并输出\n");
printf("4.按照成绩由高到低排序并输出\n");
printf("选择对应的功能\n");
}
int read()
{
int j;
scanf_s("%d", &j);
return j;
}
int main()
{
printf("输入学生的个数:");
int m;
int* n_ = &m;
scanf_s("%d", &m);
struct student stu[100];
input(n_, &stu[0]);
while (1)
{
start();
switch (read())
{
case 1:output(n_, &stu[0]);
break;
case 2:searchchengji(n_, &stu[0]);
break;
case 3:searchxingming(n_, &stu[0]);
break;
case 4:sort(n_, &stu[0]);
break;
}
}
return 0;
}