标题:求解,帮忙看看这个代码怎么改啊?
只看楼主
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
结帖率:100%
已结贴  问题点数:30 回复次数:10 
求解,帮忙看看这个代码怎么改啊?
#include <stdio.h>
#include <string.h>

struct chengji
{
    char name[20];
    float math;
    float chinese;
    float english;
    float chemistry;
    float physics;
    float sum;
    int id;
};


int main()
{
    struct chengji list[1000]={0};

    int n,i;

    printf("请输入学生总数:");
    scanf("%d",&n);

    for(i=1;i<=n;i++)
    {
        printf("\n请输入第%d个学生姓名及成绩:",i);
        scanf("%s%d%f%f%f%f%f",list[i].name,&list[i].id,&list[i].math,&list[i].chinese,&list[i].english,&list[i].chemistry,&list[i].physi1cs);
        list[i].sum=list[i].math+list[i].chinese+list[i].english+list[i].chemistry+list[i].physics;
        list[0].math+=list[i].math;
        list[0].chinese+=list[i].chinese;
        list[0].english+=list[i].english;
        list[0].chemistry+=list[i].chemistry;
        list[0].physics+=list[i].physics;
    }

    printf("\t姓名\t学号\t数学\t语文\t英语\t化学\t物理\t总分\n");
    for (i=1;i<=n;i++)
    {
        printf("\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",list[i].name,list[i].id,list[i].math,list[i].chinese,list[i].english,list[i].chemistry,list[i].physics,list[i].sum);
    }

    printf("平均分:\t\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t\n",list[0].math,list[0].chinese,list[0].english,list[0].chemistry,list[0].physics);

    return 0;
}

这是目前的代码
这是编译器说的错误:
52    27    E:\WORK\program\project.cpp    [Error] expected unqualified-id before 'class'
54    42    E:\WORK\program\project.cpp    [Error] expected primary-expression before 'class'

麻烦大家了!谢谢!
搜索更多相关主题的帖子: english chinese math list float 
2019-11-18 20:10
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:30 
我说看着好眼熟,我给你这个代码的时候可是不带错误的,你自己看看改了什么不就知道了么。
https://bbs.bccn.net/thread-497816-1-1.html

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-11-18 20:30
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:0 
scanf("%s%d%f%f%f%f%f",list[i].name,&list[i].id,&list[i].math,&list[i].chinese,&list[i].english,&list[i].chemistry,&list[i].physilcs);
这个physilcs变量拼错了,physics。真是服了。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-11-18 20:39
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
得分:0 
回复 2楼 纯蓝之刃
emm。。。抱歉,我弄错代码了,我之后又弄了一个,那会复制的时候是两个一起打开的,因为急着有其他事就弄错了。。。
2019-11-18 23:34
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
得分:0 
回复 2楼 纯蓝之刃
应该是这个,您帮忙看下,麻烦了。
error那会没弄错

#include <stdio.h>
#include <math.h>

void averageOfStudent(double ans[], int a[11][6]) {
    int i, j;
    for (i = 1; i <= 10; i++) {
        double ret = 0;
        for (j = 1; j <= 5; j++) ret += a[i][j];
        ans[i] = ret / 5;
    }
}

void averageOfClass(double ans[], int a[11][6]) {
    int i, j;
    for (i = 1; i <= 5; i++) {
        double ret = 0;
        for (j = 1; j <= 5; j++) ret += a[j][i];
        ans[i] = ret / 10;
    }
}

void findMaxScore(int *ans1, int *ans2, int a[11][6]) {
    int cmp = 0;
    int i, j;
    for (i = 1; i <= 10; i++) {
        for (j = 1; j <= 5; j++) {
            if (cmp < a[i][j]) {
                cmp = a[i][j];
                *ans1 = i;
                *ans2 = j;
            }
        }
    }
}

double calASD(int a[11][6], int n) {
    int i, j;
    int sum1 = 0;
    int sum2 = 0;
    for (i = 1; i <= 10; i++) {
        for (j = 1; j <= 5; j++) {
            sum1 += a[i][j]*a[i][j];
            sum2 += a[i][j];
        }
    }
    return 1.0*sum1/n - (1.0*sum2/n)*(1.0*sum2/n);
}

int main() {
    int score[11][6];
    double aver_stu[11], aver_cla[6];
    char student[11][20], class[6][20];
    int i, j;
    for (i = 1; i <= 5; i++) scanf("%s", class[i]); // the name of class.
    for (i = 1; i <= 10; i++) scanf("%s", student[i]); // the name of student.
    for (i = 1; i <= 10; i++) {
        for (j = 1; j <= 5; j++) {
            scanf("%d", &score[i][j]);
        }
    }
    averageOfStudent(aver_stu, score); // 1
    averageOfClass(aver_cla, score); // 2
    int max_score_stu, max_score_cla;
    findMaxScore(&max_score_stu, &max_score_cla, score); // 3
    double score_ASD = calASD(score, 10*5); // 4
    return 0;
}
2019-11-18 23:36
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
得分:0 
回复 3楼 纯蓝之刃
这个是复制上来不知道怎么就成这样了。。。。
2019-11-18 23:42
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:0 
程序代码:
#include <stdio.h>
#include <math.h>

void averageOfStudent(double ans[], int a[11][6]);
void averageOfClass(double ans[], int a[11][6]);
void findMaxScore(int *ans1, int *ans2, int a[11][6]);
double calASD(int a[11][6], int n);

void averageOfStudent(double ans[], int a[11][6])
{
    int i, j;
    for (i = 1; i <= 10; i++) {
        double ret = 0;
        for (j = 1; j <= 5; j++) ret += a[i][j];
        ans[i] = ret / 5;
    }
}

void averageOfClass(double ans[], int a[11][6])
{
    int i, j;
    for (i = 1; i <= 5; i++) {
        double ret = 0;
        for (j = 1; j <= 5; j++) ret += a[j][i];
        ans[i] = ret / 10;
    }
}

void findMaxScore(int *ans1, int *ans2, int a[11][6])
{
    int cmp = 0;
    int i, j;
    for (i = 1; i <= 10; i++) {
        for (j = 1; j <= 5; j++) {
            if (cmp < a[i][j]) {
                cmp = a[i][j];
                *ans1 = i;
                *ans2 = j;
            }
        }
    }
}

double calASD(int a[11][6], int n)
{
    int i, j;
    int sum1 = 0;
    int sum2 = 0;
    for (i = 1; i <= 10; i++) {
        for (j = 1; j <= 5; j++) {
            sum1 += a[i][j]*a[i][j];
            sum2 += a[i][j];
        }
    }
    return 1.0*sum1/n - (1.0*sum2/n)*(1.0*sum2/n);
}

int main()
{
    int score[11][6];
    double aver_stu[11], aver_cla[6];
    char student[11][20], class[6][20];
    int i, j;
    for (i = 1; i <= 5; i++) scanf("%s", class[i]); // the name of class.
    for (i = 1; i <= 10; i++) scanf("%s", student[i]); // the name of student.
    for (i = 1; i <= 10; i++) {
        for (j = 1; j <= 5; j++) {
            scanf("%d", &score[i][j]);
        }
    }
    averageOfStudent(aver_stu, score); // 1
    averageOfClass(aver_cla, score); // 2
    int max_score_stu, max_score_cla;
    findMaxScore(&max_score_stu, &max_score_cla, score); // 3
    //double score_ASD = calASD(score, 10*5); // 4
    return 0;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-11-19 21:06
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
得分:0 
回复 7楼 纯蓝之刃
还是老error
2019-11-20 12:51
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:0 
你用的什么编译器啊?我用codeblocks编译没问题啊?你报什么错?

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-11-20 16:27
Pluto鲸落
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2019-11-14
得分:0 
回复 9楼 纯蓝之刃
Dev-C++
这是error:
E:\WORK\program\22412.cpp    In function 'int main()':
62    27    E:\WORK\program\22412.cpp    [Error] expected unqualified-id before 'class'
64    42    E:\WORK\program\22412.cpp    [Error] expected primary-expression before 'class'
2019-11-20 22:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497910-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031931 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved