![]() |
#2
rjsp2022-05-30 08:48
为什么不贴题目要求?何况你自己还知道代码是错误的,那怎么从错误的代码推导出正确的要求?
sumlevel=(int)( students[i].sum/50); 我完全看不懂(比如三科全100分,那按你的代码就应该是“劣”了?),就将它改掉了。switch(sumlevel) { case 5: printf("优\n");break; case 4: printf("优\n");break; case 3: printf("良\n");break; case 2: printf("中\n");break; case 1: printf("差\n");break; default: printf("劣\n");break; } ![]() #include <stdio.h> struct student { int num; // 学号 char name[10]; // 姓名 int sc_programming; int sc_database; int sc_network; }; int main( void ) { struct student students[3]; // 3名同学 const size_t n = sizeof(students)/sizeof(*students); for( size_t i=0; i!=n; ++i ) { printf( "num: " ); scanf( "%d", &students[i].num ); printf( "name: " ); scanf( "%s", students[i].name ); printf( "programming score: " ); scanf( "%d", &students[i].sc_programming ); printf( "network score: " ); scanf( "%d", &students[i].sc_network ); printf( "database score: "); scanf( "%d", &students[i].sc_database ); } printf( "num\tname\tsum\n" ); for( size_t i=0; i!=n; ++i ) { if( students[i].sc_programming<0 || students[i].sc_programming>100 || students[i].sc_network<0 || students[i].sc_network>100 || students[i].sc_database<0 || students[i].sc_database>100 ) { puts( "成绩输入错误!"); } else { int sum = students[i].sc_programming + students[i].sc_network + students[i].sc_database; const char* level; if( sum >= 3*90 ) level = "优"; else if( sum >= 3*80 ) level = "良"; else if( sum >= 3*70 ) level = "中"; else if( sum >= 3*60 ) level = "差"; else level = "劣"; printf( "%d\t%s\t%d\t%s\n", students[i].num, students[i].name, sum, level ); } } } |
#include "stdlib.h"
struct courses
{
int programming;
int database;
int network;
double score;
};
struct student
{
int num; //学号
char name[10]; //姓名
int sum; //总分
char sumlevel;
struct courses sc[3];
};
void sumScore(struct student students[])
{
int i;
for (i = 0; i < 3; i++)
{
students[i].sum=students[i].sc[0].programming+students[i].sc[1].network+students[i].sc[2].database;
}
}
void sumLevel(struct student students[])
{
int i;
char sumlevel;
for (i = 0; i < 3; i++)
{
sumlevel=(int)( students[i].sum/50);
}
scanf("%lf",& students[i].sum);
if ( students[i].sum>300|| students[i].sum<0)
{
printf("成绩输入错误!\n");
}
else
{
sumlevel=(int)( students[i].sum/50);
switch(sumlevel)
{
case 5: printf("优\n");break;
case 4: printf("优\n");break;
case 3: printf("良\n");break;
case 2: printf("中\n");break;
case 1: printf("差\n");break;
default: printf("劣\n");break;
}
}
}
int main()
{
struct student students[5];//3名同学
int i;
for (i = 0; i < 3; i++)
{
printf("num:");
scanf("%d",&students[i].num);
printf("name:");
scanf("%s",students[i].name);
printf("programming score:");
scanf("%d",&students[i].sc[0].programming);
printf("network score:");
scanf("%d",&students[i].sc[1].network);
printf("database score:");
scanf("%d",&students[i].sc[2].database);
}
sumScore(students);
sumLevel(students);
printf("num\tname\tsum\n");
for (i = 0; i < 3; i++)
{
printf("%d\t%s\t%d\t%s\n",students[i].num,students[i].name,students[i].sum,students[i].sumlevel);
}
return 0;
}
只有本站会员才能查看附件,请 登录