gpt4 book ai didi

c - 打印二维数组名称和等级

转载 作者:太空宇宙 更新时间:2023-11-04 02:40:20 25 4
gpt4 key购买 nike

我的项目需要我添加姓名然后评分,每个人在每个作业之间交替。所以我输入学生人数,然后是作业数量,学生姓名,然后是他们的成绩。

我的问题是我的打印功能是在一列中直接向下打印成绩,而不是在行中打印。我想我遗漏了什么,我的打印函数叫做 print_report。

#include <stdio.h>
#include <string.h>

int numStus;
int numGrades;

// Get students names
void get_students(char stuNames[numStus][10])
{
int i;
int j;

for (i=0; i<numStus; i++)
{
printf("Enter the students name.");
scanf("%s", &stuNames[i]);
}
}

// enter each students grades
void get_grades(int grades[numGrades][numStus], char stuNames[numStus] [10])
{
int x;
int z;

for (x=0; x < numGrades; x++)
{
for (z = 0; z < numStus; z++)
{
printf("Enter score for %s assignment %d: ", stuNames[z],x);
scanf("%d", &grades[x][z]);
}
}
}

void calc_grades( );
void print_report(int grades[numGrades][numStus], char stuNames[numStus] [10])
{
int i;
int j;
int k;

for(i = 0; i < numStus; i++)
{
printf("%s ",stuNames[i]);
}
printf("\n");
for(j = 0; j < numGrades; j++)
{
for(k = 0; k < numStus; k++)
{
printf("%6i",grades[j][k] );
printf("\n");
}
}
}

int main()
{
printf("How many students?");
scanf("%d", &numStus);
printf("How many assignments?");
scanf("%d", &numGrades);

// Ask how many students

// Ask how many assignments

// Initializations...
char stuNames[numStus][10];
int grades[numGrades][numStus];
char finalGrades[numStus];

//Get Student Names
get_students(stuNames);
get_grades(grades, stuNames);
print_report(grades, stuNames);

int x;
int z;

// Get Grades

// Calculate Final Grades

// Print Report

return 0;
}

最佳答案

您要做的就是查看您的 print_report 函数。将嵌套 for 循环外的 printf("\n") 语句移动到外部 for 循环。像这样:

for(j = 0; j < numGrades; j++)
{
for(k = 0; k < numStus; k++)
{
printf("%6i",grades[j][k] );
}
printf("\n");
}

我不确定这是否是您遇到的问题,但我的直觉告诉我确实如此。

关于c - 打印二维数组名称和等级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32644227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com