1)不及格人数统计;
2)子函数实现: 根据学号在结构体数组中查找学生信息,返回该学生所在的数组下标,若没找到则返回 - 1。
主函数中输出该学生信息。要求:使用学号、结构体指针变量作为函数参数编程
如何修改
#include
struct student
{
int num;
char name[20];
char sex;
float score;
}stu[5] = { {101,"li ping",'m',45},
{102 ,"zhang ping",'m',62.5},
{103 ,"he fang",'m',92.5},
{104 ,"cheng ling",'f',87},
{105 ,"wang ming",'m',58} };
int search(int y,int* ch)
{
int i = 0;
ch = stu;
for (; ch < 106;i++,ch++)
{
if (y==stu[i].num)
{
return i;
}
if(y<101 && y>105)
{
return (-1);
}
}
}
int main()
{
int i, x = 0, y;
int* ch = stu;
for (i = 0; i < 5; i++)
{
if (stu[i].score < 60)
{
x += 1;
}
}
printf("请输入你想查找的学生的编号:\n");
scanf_s("%d", &y);
y -= 1;
y = search(y,ch);
if (y == -1)
{
printf("数据输入错误");
return 0;
}
else
{
printf("%d %s %s %lf", stu[i].num, stu[i].name, stu[i].sex, stu[i].score);
}
return 0;
}
#include <stdio.h>
struct student
{
int num;
char name[20];
char sex;
float score;
} stu[5] = {{101, "li ping", 'm', 45},
{102, "zhang ping", 'm', 62.5},
{103, "he fang", 'm', 92.5},
{104, "cheng ling", 'f', 87},
{105, "wang ming", 'm', 58}};
int search(int y) //
{
int i = 0;
// int ch = stu[0].num; //
for (; i < 5; i++)//
{
if (y == stu[i].num)
{
return i;
}
// if (y < 101 && y > 105)
// {
// return (-1);
// }
}
return -1;
}
int main()
{
int i, x = 0, y;
//int ch;
for (i = 0; i < 5; i++)
{
if (stu[i].score < 60)
{
x += 1;
}
}
printf("请输入你想查找的学生的编号:\n");
scanf_s("%d", &y);
// y -= 1;
y = search(y);
if (y == -1)
{
printf("数据输入错误");
// return 0;
}
else
{
printf("%d %s %c %f", stu[y].num, stu[y].name, stu[y].sex, stu[y].score); //
}
return 0;
}