删除记录(结构体专题)

题目描述

有一学生成绩表,包括学号、姓名、3门课程成绩。请实现如下删除功能:输入一个学生的学号,删除该学生的所有信息。

输入

首先输入一个整数n(1<=n<=100),表示学生人数;
然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。
最后一行输入一个学号num。

输出

若要删除的学号不存在,则输出“error!”;否则,输出删除该学生后的所有记录。

样例输入

3
541207010188 Zhangling 78 95 55
541207010189 Wangli 87 99 88
541207010190 Fangfang 68 76 75
541207010188

样例输出

541207010189 Wangli 87 99 88

541207010190 Fangfang 68 76 75

#include<stdio.h>
#include<string.h>
int main()
{
 
    struct stu
    {
        double xh;
        char q[50];
        int a;
        int b;
        int c;
    } s[100];
    int n, i, d = 0;
    double sc;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        scanf("%lf%s%d%d%d", &s[i].xh, s[i].q, &s[i].a, &s[i].b, &s[i].c);
    }
    scanf("%lf", &sc);
    for (i = 0; i < n; i++)
    {
        if (s[i].xh == sc)
            d = 1;
    }
    if (d == 0)
    {
        printf("error!\n");
    }
    else
    {
        for (i = 0; i < n; i++)
        {
            if (s[i].xh == sc)
            {
                continue;
            }
            printf("%.0lf %s %d %d %d\n", s[i].xh, s[i].q, s[i].a, s[i].b, s[i].c);
        }
 
    }
    return 0;
}


猜你喜欢

转载自blog.csdn.net/loven0326/article/details/79216882
今日推荐