C语言程序设计 编程,我是C语言初学者,请高手们帮我为下面这道题编个程序,分别用if else 和switch语句做

2024-11-23 07:00:08
推荐回答(3个)
回答(1):

#include
int main()
{

char c;
int x = 0, y = 0;

printf("***************请按提示选择*************\n");
printf("a---本校全日制学生\n");
printf("b---本校夜大学生\n");
printf("c---外校学生\n");

scanf("%c", &c);
if(c == 'a')
{
printf("你是本校全日制学生,不收付费 ^_^\n");
}

if(c == 'b')
{
printf("本校夜大学生,你的要选修的学分\n");
scanf("%d", &x);
if(x <= 12)
{
printf("本校夜大学生,你的学费是200元\n");
}
else
{
printf("本校夜大学生,你的学费是%d元\n", 200+(x-12)*20);
}
}

if(c == 'c')
{
printf("外校学生,你的要选修的学分\n");
scanf("%d", &y);
if(y <= 12)
{
printf("外校学生,你的学费是600元\n");
}
else
{
printf("外校学生,你的学费是%d元\n", 600+(y-12)*60);
}
}
return 0;
}
---------------------------------------------------------------------------------------------------------------------
#include
int main()
{

char c;
int x = 0, y = 0;

printf("***************请按提示选择*************\n");
printf("a---本校全日制学生\n");
printf("b---本校夜大学生\n");
printf("c---外校学生\n");
scanf("%c", &c);
switch (c)
{
case 'a':
printf("你是本校全日制学生,不收付费 ^_^\n");
break;
case 'b':
printf("本校夜大学生,你的要选修的学分\n");
scanf("%d", &x);
if(x <= 12)
{
printf("本校夜大学生,你的学费是200元\n");
}
else
{
printf("本校夜大学生,你的学费是%d元\n", 200+(x-12)*20);
}
break;

case 'c':
printf("外校学生,你的要选修的学分\n");
scanf("%d", &y);
if(y <= 12)
{
printf("外校学生,你的学费是600元\n");
}
else
{
printf("外校学生,你的学费是%d元\n", 600+(y-12)*60);
}
break;
default:
printf("请选a,b,c不要乱选\n");
break;
}

return 0;
}

题目中没有跟学生编号有关的数据。学费只跟学生类型和学费有关系啊。

回答(2):

struct student{
char* no;
int credit;
char* type;
double point;
}stu;
//用if-else
if(stu.type=="本校全日制学生") then stu.point=0;
else if(stu.type=="本校夜大学生"&&stu.credit<=12) then stu.point=200;
else if(stu.type=="本校夜大学生"&&stu.credit>12) then stu.point=200+20*(stu.credit-12);
else if(stu.type=="外校学生"&&stu.credit<=12) then stu.point=600;
else if()stu.type=="外校学生"&&stu.credit>12 then stu.point=600+60*(stu.credit-12);

//用switch
switch(stu.type)
{
case "本校全日制学生":
stu.point=0;
break;
case "本校夜大学生":
stu.point=200+20*(stu.credit-12);
if(stu.point<200) then stu.point=200;
break;
case "外校学生":
stu.point=600+60*(stu.credit-12);
if(stu.point<600) then stu.point=600;
break;
}

回答(3):

fhfgh