帮一位同学写的
实现输入四个学生的姓名和每一位学生三门课程的成绩
实现排序输出每一位同学的成绩和总分
#include
#include
int main()
{
//int key = 0;
//scanf_s("%d", &key);
//printf("-----n");
//char info;
//scanf_s("%c", &info,1);
//printf("--------n");
char name[4][20] = { {""} };
int score[4][3] = { 0 };
int rowSum[4] = { 0 };
int colsSum[4] = { 0 };
printf("请输入四个学生的信息(name,math,english,py):n");
for (int i = 0; i < 4; i++)
{
//在二维字符数组中,用一个下标表示每一行的首地址
scanf_s("%s",name[i],20); //输入姓名 name[i]就是每一行的首地址
//三个分数
for (int j = 0; j < 3; j++)
{
//字符和字串用scanf_s需要长度,数字类不需要
scanf_s("%d", &score[i][j]);
//求总分
rowSum[i] += score[i][j];
}
//while(getchar()!='n');
}
//前3列
for (int j = 0; j < 3; j++)
{
for (int i = 0; i < 4; i++)
{
colsSum[j] += score[i][j];
}
}
//最后列
for (int i = 0; i < 3; i++)
{
colsSum[3] += colsSum[i];
}
printf("n姓名t数学t英语tpyt总分n");
for (int i = 0; i < 4; i++)
{
printf("%st", name[i]);
for (int j = 0; j < 3; j++)
{
printf("%dt", score[i][j]);
}
printf("%dt", rowSum[i]);
printf("n");
}
//最后一行
printf("总分t");
for (int i = 0; i < 4; i++)
{
printf("%dt", colsSum[i]);
}
// int rowSum[4] = { 0 };
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4 - i - 1; j++)
{
if (rowSum[j] > rowSum[j + 1])
{
//总分-->数字类直接用赋值
int temp = rowSum[j];
rowSum[j] = rowSum[j + 1];
rowSum[j + 1] = temp;
//姓名-->字符串必须用字符串处理函数
char str[20];
//strcpy(str,name[j])
strcpy_s(str, 20, name[j]);
strcpy_s(name[j], 20, name[j+1]);
strcpy_s(name[j+1], 20,str);
//分数
//j:0 j+1:1
for (int k = 0; k < 3; k++) //列数
{
temp = score[j][k]; //00
score[j][k] = score[j + 1][k]; //10
score[j + 1][k] = temp;
}
}
}
}
printf("n-------------------------------------n");
printf("n姓名t数学t英语tpyt总分n");
for (int i = 0; i < 4; i++)
{
printf("%st", name[i]);
for (int j = 0; j < 3; j++)
{
printf("%dt", score[i][j]);
}
printf("%dt", rowSum[i]);
printf("n");
}
//最后一行
printf("总分t");
for (int i = 0; i < 4; i++)
{
printf("%dt", colsSum[i]);
}
return 0;
}