changkong96 2021-04-29 23:06 采纳率: 66.7%
浏览 41
已采纳

代码小问题太多,希望得到正确的代码,最好是完整敲出来

#include<stdio.h>
#include<string.h>
struct student
{
char num;
char name[10];
int s1;
    int s2;
    int s3;
    int s4;
    int s5;
int sum;
}student[1000];
void fun1(int number)
{
    int i;
for(i=0;i<number;i++){
printf("请输入第%d名学生的信息\n",i+1);
printf("学号:");
scanf("%s",&student[i].num);
printf("姓名:");
scanf("%s",&student[i].name);
printf("成绩一:");
scanf("%d",&student[i].s1);
printf("成绩二:");
scanf("%d",&student[i].s2);
printf("成绩三:");
scanf("%d",&student[i].s3);
printf("成绩四:");
scanf("%d",&student[i].s4);
printf("成绩五:");
scanf("%d",&student[i].s5);
}
printf("学生信息如下:\n");
for(i=0;i<number;i++){
printf("学号:%3s",student[i].num);
printf("姓名:%3s",student[i].name);
printf("成绩一:%3d",student[i].s1);
printf("成绩二:%3d",student[i].s2);
printf("成绩三:%3d",student[i].s3);
printf("成绩四:%3d",student[i].s4);
printf("成绩五:%3d\n",student[i].s5);
}
}
void fun2(struct student s1,struct student s2,struct student s3,struct student s4,struct student s5,int number)
{
    int sum[1000],i;
    for(i=0;i<number;i++)
    {
        student[i].sum=student[i].s1+student[i].s2+student[i].s3+student[i].s4+student[i].s5;
printf("学号:%3d",student[i].num);
printf("姓名:%3s",student[i].name);
printf("学生的总分:%d\n",student[i].sum);
    }
}
void fun3(struct student *ps,int number)
{
    int i,j,k,sum;
    struct student temp;
    for(i=0;i<number-1;i++)
    {
        k=i;
        for(j=i+1;j<number;j++)
            if((ps+k)->sum<(ps+j)->sum) k=j;
        if(i!=k)
        {
            temp=*(ps+i);*(ps+i)=*(ps+k);*(ps+k)=temp;
        }
        printf("输出排序结果:\n");
        for(i=0;i<number;i++)
        {
            printf("学号:%3s",student[i].num);
printf("姓名:%3s",student[i].name);
printf("学生的总分:%d\n",student[i].sum);
        }
    }
}
void fun4(struct student num,int number)
{
int i,c;
printf("请输入你要查找的学号:\n");
scanf("%d",&c);
for(i=0;i<number;i++)
{
if(c==student[i].num)
{
    printf("学号:%3s",student[i].num);
printf("姓名:%3s",student[i].name);
printf("成绩一:%3d",student[i].s1);
printf("成绩二:%3d",student[i].s2);
printf("成绩三:%3d",student[i].s3);
printf("成绩四:%3d",student[i].s4);
printf("成绩五:%3d\n",student[i].s5);
}
}
}
int main ()
{
    int number,i;
printf("请输入学生总人数:");
scanf("%d",&number);
fun1(number);
fun2(student[i]. s1, student[i].s2,student[i].s3,student[i].s4,student[i].s5, number);
    fun3(student[i].num,number);
    fun4(student[i].num,number);
    return 0;
}

  • 写回答

7条回答 默认 最新

  • CSDN专家-Time 2021-04-30 07:26
    关注
    #include<stdio.h>
    #include<string.h>
    
    #pragma warning(disable:4996)
    struct student
    {
        char num[20];
        char name[10];
        int s1;
        int s2;
        int s3;
        int s4;
        int s5;
        int sum;
    }student[1000];
    void fun1(int number)
    {
        int i;
        for (i = 0; i < number; i++) {
            printf("请输入第%d名学生的信息\n", i + 1);
            printf("学号:");
            scanf("%s", &student[i].num);
            printf("姓名:");
            scanf("%s", &student[i].name);
            printf("成绩一:");
            scanf("%d", &student[i].s1);
            printf("成绩二:");
            scanf("%d", &student[i].s2);
            printf("成绩三:");
            scanf("%d", &student[i].s3);
            printf("成绩四:");
            scanf("%d", &student[i].s4);
            printf("成绩五:");
            scanf("%d", &student[i].s5);
        }
        printf("学生信息如下:\n");
        for (i = 0; i < number; i++) {
            printf("学号:%3s", student[i].num);
            printf("姓名:%3s", student[i].name);
            printf("成绩一:%3d", student[i].s1);
            printf("成绩二:%3d", student[i].s2);
            printf("成绩三:%3d", student[i].s3);
            printf("成绩四:%3d", student[i].s4);
            printf("成绩五:%3d\n", student[i].s5);
        }
    }
    void fun2(struct student s1, int number)
    {
        int sum[1000], i;
        for (i = 0; i < number; i++)
        {
            student[i].sum = student[i].s1 + student[i].s2 + student[i].s3 + student[i].s4 + student[i].s5;
            printf("学号:%3d", student[i].num);
            printf("姓名:%3s", student[i].name);
            printf("学生的总分:%d\n", student[i].sum);
        }
    }
    void fun3(struct student* ps, int number)
    {
        int i, j, k, sum;
        struct student temp;
        for (i = 0; i < number - 1; i++)
        {
            k = i;
            for (j = i + 1; j < number; j++)
                if ((ps + k)->sum < (ps + j)->sum) k = j;
            if (i != k)
            {
                temp = *(ps + i); *(ps + i) = *(ps + k); *(ps + k) = temp;
            }
            printf("输出排序结果:\n");
            for (i = 0; i < number; i++)
            {
                printf("学号:%3s", student[i].num);
                printf("姓名:%3s", student[i].name);
                printf("学生的总分:%d\n", student[i].sum);
            }
        }
    }
    void fun4(struct student num, int number)
    {
        int i; char c[20];
        printf("请输入你要查找的学号:\n");
        scanf("%s", &c);
        for (i = 0; i < number; i++)
        {
            if (strcmp(c,student[i].num)==0)
            {
                printf("学号:%3s", student[i].num);
                printf("姓名:%3s", student[i].name);
                printf("成绩一:%3d", student[i].s1);
                printf("成绩二:%3d", student[i].s2);
                printf("成绩三:%3d", student[i].s3);
                printf("成绩四:%3d", student[i].s4);
                printf("成绩五:%3d\n", student[i].s5);
            }
        }
    }
    int main()
    {
        int number, i=1;
        printf("请输入学生总人数:");
        scanf("%d", &number);
        fun1(number);
        fun2(student[i], number);
        fun3(&student[i], number);
        fun4(student[i], number);
        return 0;
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?