#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int number;
int class;
#define MAX_NUM 30
#define MAX_CLASS 6
#define MAX_LEN 10
typedef struct student{
long ID;
char name[MAX_LEN];
float *result[];
}STU;
void sumaver1(float *result[]);
//void sumaver2(float *result[]);
int main()
{
STU stu;
int i;
printf("Input student number(n<30):\n");
scanf("%d",&number);
printf("Input course number(m<=6):\n");
scanf("%d",&class);
printf("Input student's ID,name and result:\n");
for(i=1;i<=number;i++){
scanf("%ld %s %f",&stu.ID,&stu.name,&stu.result);
}
sumaver1(stu.result);
return 0;
}
void sumaver1(float *result[]){
int i;
int n;
int sum[MAX_CLASS]={0};
double average[MAX_CLASS]={0.0};
for(i=0;i<class;i++){
for(n=0;n<number;n++){
sum[i]+=result[i][n];
}
average[i]=1.0*sum[i]/class;
}
for(i=0;i<class;i++){
printf("course %d:sum=%.0f,aver=%.0f\n",i,sum[i],average[i]);
}
}
小白真心求教,剛學c語言沒多久,遇到這樣的情況很懵啊,自閉了!
uj5u.com熱心網友回復:
有人嘛,求個大佬幫我看看uj5u.com熱心網友回復:
發個報錯資訊看看uj5u.com熱心網友回復:
all classgaicheng
class1
chinese input doesn't come out.
uj5u.com熱心網友回復:
中文輸入法終于出來了剛才一直不出來
class是c++關鍵字
把所有class改成class1或者別的什么
uj5u.com熱心網友回復:
不用用什么define,還沒到這個階段,先用const,把程式絕對簡化,自己看就懂了
uj5u.com熱心網友回復:
大佬可是改完之后還是不行,就是運行之后把資料輸入進去,卻無法輸出任何結果
uj5u.com熱心網友回復:

大佬們輸入完資料之后就卡著不動了,數字也輸入不進去,也不輸出結果,是不是因為我的程式寫錯了?
uj5u.com熱心網友回復:
發了大佬
uj5u.com熱心網友回復:
你要求每科平均分還是
每個學生平均分
呀
?
uj5u.com熱心網友回復:
感覺好像是求每科的#include<stdio.h>
int number;
int class1;
#define MAX_NUM 30
#define MAX_CLASS 6
#define MAX_LEN 10
typedef struct student{
long ID;
char name[MAX_LEN];
float result[MAX_NUM][MAX_CLASS];
}STU;
void sumaver1(float result[MAX_NUM][MAX_CLASS]);
int main()
{
STU stu;
int i,j;
printf("Input student number(n<30):\n");
scanf("%d",&number);
printf("Input course number(m<=6):\n");
scanf("%d",&class1);
printf("Input student's ID,name and result:\n");
for(i=0;i<number;i++){
scanf("%ld %s",&stu.ID,&stu.name);
for(j=0;j<class1;j++)
scanf("%f",&stu.result[i][j]);
}
sumaver1(stu.result);
return 0;
}
void sumaver1(float result[MAX_NUM][MAX_CLASS]){
int i;
int j;
float sum[MAX_CLASS]={0};
double average[MAX_CLASS]={0.0};
for(i=0;i<class1;i++){
for(j=0;j<number;j++){
sum[i]+=result[j][i];
}
average[i]=sum[i]/number;
}
for(i=0;i<class1;i++){
printf("course %d:sum=%.0f,aver=%.0f\n",i+1,sum[i],average[i]);
}
}
供參考
uj5u.com熱心網友回復:
每科的平均分,大佬幫我看看吧!
uj5u.com熱心網友回復:
剛剛試了下,確實這樣是對的,找到自己的問題了,謝謝大佬!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/121021.html
標籤:C語言
下一篇:結構體字串為什么不能這樣初始化啊
