gpt4 book ai didi

c - 在二维数组中排列 Char

转载 作者:行者123 更新时间:2023-11-30 18:38:47 27 4
gpt4 key购买 nike

我在将我的字母成绩与学生的分数对齐时遇到问题。它以适当的间距打印出分数,但是当它到达 if 语句来分配字母等级时,它会像 ABC 一样打印它们,而不是与列居中。任何帮助,将不胜感激。问题出在 calc_grades 函数的 if 语句中。我不知道如何让成绩与列对齐

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

int numStus;
int numGrades;

void get_students(char stuNames[numStus][10]) //Get students names
{
int i;
int j;
for (i=0; i<numStus; i++)
{
printf("Enter the students name.");
scanf("%6s", &stuNames[i]);
}

}
void get_grades(int grades[numGrades][numStus], char stuNames[numStus] [10])//enter each students grades
{
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(int grades[numGrades][numStus])
{
int sum = 0;
int sum2 = 0;
int j;
int k;
for(j = 0; j < numStus; j++)
{
for(k = 0; k < numGrades; k++)
{
sum= sum + grades[k][j];
sum2 = sum / numGrades;
}
if (sum2 >= 90)
{
printf("A ");
}
if (sum2 < 90 && sum2 >= 80)
{
printf("B ");
}
if (sum2 < 80 && sum2 >= 70)
{
printf("C ");
}
if (sum2 < 70 && sum2 >= 60)
{
printf("D ");
}
if (sum2 < 60)
{
printf("F ");
}
sum = 0;
}
}
void print_report(int grades[numGrades][numStus], char stuNames[numStus][10])
{
int i;
int j;
int k;
for(i = 0; i < numStus; i++)
{
printf("%6s",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);
calc_grades(grades);
int x;
int z;


//Get Grades

//Calculate Final Grades

//Print Report

return 0;
}

最佳答案

问题在于如何在 if 语句中打印成绩。查看您的 print_report 函数,您的格式是正确的,那么为什么不保持相同的方式呢?

你拥有什么:

if (sum2 >= 90)
{
printf("A ");
}

它应该是什么:

if (sum2 >= 90)
{
printf("%6c", 'A');
}

关于c - 在二维数组中排列 Char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32646399/

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