C 使用多个相同数组的结构查找浮点平均值

C 使用多个相同数组的结构查找浮点平均值,c,arrays,structure,average,C,Arrays,Structure,Average,想寻求帮助! 我有三门学科的分数(数学、英语和科学)进入三个不同的数组 我根据建议使用“结构” 我无法打印每个科目和总科目的平均值。平均值显示为零 for (int i = 0; i < num && i < Max_NUM; i++) { for (j = 0; j < 3; j++) { //loop calculating sum of array elements sum=(sum+s

想寻求帮助! 我有三门学科的分数(数学、英语和科学)进入三个不同的数组

我根据建议使用“结构”

我无法打印每个科目和总科目的平均值。平均值显示为零

for (int i = 0; i < num && i < Max_NUM; i++)
{
  for (j = 0; j < 3; j++) 
        { //loop calculating sum of array elements
                        sum=(sum+std[i].subject[j]); //sum of mark for 3 subjects 
                        sum2=sum/num;  
                    std[i].subject[j] =(sum2/Max_Grade)*100; // average mark

                //for total average mark (sub 0 avg mark+ sub 1 avg mark+ sub 2 avg mark)
                totalSUB =(std[i].subject[0]+std[i].subject[1]+std[i].subject[2])/3;
         }
                   //to print 3lines: for average marks of each subject: sub 0, sub 1, sub2  
                  printf("\nAverage mark: %.2f",std[i].subject[j]);  

                  //to print average marks for each subject: sub 0, sub 1, sub2  
                  printf("\nTotalSUB- Average mark: %.2f",totalSUB);  
                   return 0; 
                   }  //end of if
for(int i=0;i
输出错误,如所附图片所示: 完整代码如下:

 #include <stdio.h>
        #include <stdlib.h>
        #define Max_Grade 415
        #define Max_NUM 150
                int main()
                {
                    int i,j,num;//variable declaration
                    double avg=0.0,sum=0.0, sum2=0.0, totalSUB=0.0;
                    struct student 
                    {
                         double subject[3];
                    };
                    struct student std[Max_NUM];
                    printf("Enter number of students: ");
                    scanf("%d",&num);
// for loop to read i'th student's j'th subject
for (int i = 0; i < num && i < Max_NUM; i++)
{
  for (j = 0; j < 3; j++) 
  {
     printf("Enter marks of student %d for subject %d: ", i, j);
     scanf("%f", &std[i].subject[j]);
     //sleep(2);
  }
}
for (int i = 0; i < num && i < Max_NUM; i++)
{
  for (j = 0; j < 3; j++) 
        { //loop calculating sum of array elements
                        sum=(sum+std[i].subject[j]); //sum of mark for 3 subjects 
                        sum2=sum/num;  
                    std[i].subject[j] =(sum2/Max_Grade)*100; // average mark

                //for total average mark (sub 0 avg mark+ sub 1 avg mark+ sub 2 avg mark)
                totalSUB =(std[i].subject[0]+std[i].subject[1]+std[i].subject[2])/3;
         }
                   //to print 3lines: for average marks of each subject: sub 0, sub 1, sub2  
                  printf("\nAverage mark: %.2f",std[i].subject[j]);  

                  //to print average marks for each subject: sub 0, sub 1, sub2  
                  printf("\nTotalSUB- Average mark: %.2f",totalSUB);  
                   return 0; 
                   }  //end of if

               } //end of int main()
#包括
#包括
#定义最高等级415
#定义最大数量150
int main()
{
int i,j,num;//变量声明
双平均值=0.0,总和=0.0,总和=0.0,总和=0.0,总和=0.0;
结构学生
{
双重主体[3];
};
结构学生标准[Max_NUM];
printf(“输入学生人数:”);
scanf(“%d”和&num);
//循环阅读第i个学生的第j个主题
对于(int i=0;i
您可以达到如下所示的效果。用你想要的科目建立一个结构,并为那么多的学生分配记忆。在每个学生
std
的循环中,您可以读取每个学生的科目分数。同样,你也可以计算平均分数

struct student {
  int subject[3];
};

struct student std[Max_NUM];

printf("Enter number of students: ");
scanf("%d",&num);

/* for loop to read i'th student's j'th subject*/
for (int i = 0; i < num && i < Max_NUM; i++) {
  for (j = 0; j < 3; j++) {
     printf("Enter marks of student %d for subject %d: ", i, j);
     scanf("%d", &std[i].subject[j]);
  }
}
struct学生{
国际主题[3];
};
结构学生标准[Max_NUM];
printf(“输入学生人数:”);
scanf(“%d”和&num);
/*循环阅读第i个学生的第j个主题*/
对于(int i=0;i
使用函数或结构。你好,谢谢回复。输入标记将是浮动的,因此我修改了
double j
双主题[3]将printf行中的student更改为this
printf(“为科目%f输入学生%d\n的分数:”,i,j)但在scanf行中出错-错误消息:数组下标不是整数-在
scanf(“%d”,&std[i]。主题[j])
@SKmay,
j
是三个非标记变量的主题之一。您需要的是在struct student声明中键入一个
double
而不是
int
,并且在读取
scanf
中的
%d
时将其更改为
%f
说明符。感谢sunil找到了平均分数。我很难打印每个学生的平均值。我在我的主要职位上做了修改。谢谢你的帮助