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

大学里对不同性质的学生听课收费不同。某校是这样规定的:本校全日制学生不收费;本校夜大学生12学分及以下应付200元,然后每增加一个学分应付20元;对外校学生选课12学分及以下应付600元,然后每增加一学分应付60元。输入某个学生的编号、选课学分以及学生类型,请分别用if-else语句和switch语句编程 计算该学生应付的学费。

#include <stdio.h>
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 <stdio.h>
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;
}

题目中没有跟学生编号有关的数据。学费只跟学生类型和学费有关系啊。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-14
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;
}
第2个回答  2011-07-14
fhfgh