switch语句在c语言结构体程序设计中的运用,求例题详解,求c语言大神帮忙,很急!

如题所述

#include <stdio.h>
int main()
{
printf("我们这里有如下课程:\n");
printf("1--C++\n");
printf("2--嵌入式\n");
printf("3--java\n");
printf("您想学哪一门呢? ");
char ch;
scanf(" %c", &ch);
switch(ch){
case '1':
printf("学会C++,有饭吃\n");
break;
case '2':
printf("嵌入式有肉吃\n");
break;
case '3':
printf("学java,吃香的喝辣的\n");
break;
default:
printf("其他的没有意思\n");
break;
}
return 0;
}

注意: switch(ch)这里的ch会自动提升成整数,下面的case ‘1’等等都会转化成整数的。
case和defaut值是程序的入口

具体结构就是
switch(变量)
{
case A值://当变量等于A值的时候从这开始执行
操作;
break;//遇到break跳出
case B值://当变量等于B值的时候从这开始执行
操作;
break;//遇到break跳出
default://以上case后面的值都不满足,从这开始执行
break;//遇到break跳出
}追问

能不能给一个关于学生学号,成绩的程序,要用到结构体,switch,谢啦!

追答

#include
int main()
{
struct stu{
int number ;
float score ;
} ;
struct stu arry[4];
arry[0].number=200610;
arry[0].score=100;
arry[1].number=200611;
arry[1].score=99;
arry[2].number=200612;
arry[2].score=98;
arry[3].number=200613;
arry[3].score=97;
//arry[0]={200610,100};
//arry[1]={200611,99};
//arry[2]={200612,98};
//arry[3]={200613,97};
int no,i;
printf("请输入学号:");
scanf("%d",&no);
switch(no)
{
case 200610:
for(i=0;i<4;i++)
{

if(arry[i].number==200610)
{
printf("学号200610的成绩是:%f",arry[i].score);
}

}
break;
case 200611:
for(i=0;i<4;i++)
{

if(arry[i].number==200611)
{
printf("学号2006的成绩是:%f",arry[i].score);
}

}
break;
case 200612:
for(i=0;i<4;i++)
{

if(arry[i].number==200612)
{
printf("学号2006的成绩是:%f",arry[i].score);
}

}
break;
case 200613:
for(i=0;i<4;i++)
{

if(arry[i].number==200613)
{
printf("学号2006的成绩是:%f",arry[i].score);
}

}
break;
default:
break;
}
return 0;
}

PS: 我已经很辛苦了,采纳吧,对于结构体vs和gcc编译器对赋值支持的不一样,在VS下我就一个一个赋值了。

追问

能不能顺便解释一下,本人c语言水平太差了

能解释下为什么这个程序要用到switch吗?

追答

#include
int main()
{
/*定义结构体类型*/
struct stu{
int number ;
float score ;
} ;
struct stu arry[4];//定义结构体数组 arry
/*一下是对数组中个元素赋值*/
arry[0].number=200610;
arry[0].score=100;
arry[1].number=200611;
arry[1].score=99;
arry[2].number=200612;
arry[2].score=98;
arry[3].number=200613;
arry[3].score=97;
//arry[0]={200610,100};
//arry[1]={200611,99};
//arry[2]={200612,98};
//arry[3]={200613,97};
int no,i;//定义二个变量no用来接收输入的学号,i用于下面的循环
printf("请输入学号:");//输出
scanf("%d",&no);//输入学号,存在no中
switch(no)//一下是switch块,在上面已经说明了各意思了
{
case 200610:
for(i=0;i<4;i++)
{

if(arry[i].number==200610)
{
printf("学号200610的成绩是:%f",arry[i].score);
}

}
break;
case 200611:
for(i=0;i<4;i++)
{

if(arry[i].number==200611)
{
printf("学号2006的成绩是:%f",arry[i].score);
}

}
break;
case 200612:
for(i=0;i<4;i++)
{

if(arry[i].number==200612)
{
printf("学号2006的成绩是:%f",arry[i].score);
}

}
break;
case 200613:
for(i=0;i<4;i++)
{

if(arry[i].number==200613)
{
printf("学号2006的成绩是:%f",arry[i].score);
}

}
break;
default:
break;
}
return 0;
}

追问

请问在结构体中什么时候用到switch呢?

追答

结构体只是个类型,不会用switch的

追问

我老师让我编程,在结构体中运用switch语句,但我不知道什么时候用呢?

追答

问下你老师吧,C中switch语句怎么放在结构体中

追问

好吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-14
就是判断,如果答案是1就执行case 1下的语句。。。追问

你说的,我知道,我想看看结构体中如何使用switch语句

第2个回答  2014-03-14
相似回答