百度
360搜索
搜狗搜索

switch语句例子c语言,求教c语言中switch 语句的详细用法详细介绍

本文目录一览: c语言swich语句例子

c语言switch case语句例子如下:
#include

int main(){int a;printf("Input integer number:");scanf("%d",&a);if(a==1){printf("Monday\n")。

}else if(a==2){printf("Tuesday\n");}else if(a==3){printf("Wednesday\n");}else if(a==4){printf("Thursday\n");}else if(a==5)。

{printf("Friday\n");}else if(a==6){printf("Saturday\n");}else if(a==7){printf("Sunday\n");}else{printf("error\n");}return 0;}。

switch作为C语言程序语句

Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。其功能就是控制流程流转的。

直线翻译:switch语句,即“切换”语句;case即“情况”。

switch语句的语法如下(switch,case,break和default是关键字)。

switch (变量表达式){ case常量1 :语句;break; case常量2 :语句;break; case常量3 :语句;break; ... case常量n:语句;break; default :语句;break;}。

c语言switch case语句例子是什么?

c语言switch case语句例子是:
#include
int main(void){
int a;
printf("input integer number: ");
scanf("%d",&a);
switch (a){
case 1:printf("Monday\n"); break;
case 2:printf("Tuesday\n"); break;
case 3:printf("Wednesday\n"); break;
case 4:printf("Thursday\n"); break;
case 5:printf("Friday\n"); break;
case 6:printf("Saturday\n"); break;
case 7:printf("Sunday\n"); break;
default:printf("error\n");

return 0;

程序解读:
本程序是要求输入一个数字,输出它对应的星期的英文单词。
注意项:
1、在case后的各常量表达式的值不能相同,否则会出现错误。
2、在case后,允许有多个语句,可以不用{}括起来。
3、各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
4、default子句可以省略不写。

C语言中switch语句用法(做题)!谢谢!

Float machine(float money)switch(money)
{
case (money<200) :return money;
case (money>=200&&money<500) :return (0.9*money);
case (money>=500&&money<1000) :renturn (0.8*money);
case (money>=1000) :renturn (0.75*money);
default :return 0;
}
return 0;
}
switch( money / 100 ){ case 0: case 1: return money; case 2: case 3: case 4: return money * 0.9; case 5: case 6: case 7: case 8: case 9: return mondy * 0.8; default: return mondy * 0.75;}
你好,这些问题很好解决,常客网里面全部都有的
#include

int main() {

float amount, discount, total;

printf("请输入购物金额:");

scanf("%f", &amount);

switch ((int)amount / 100) {

case 0:

discount = 1;

break;

case 2:

discount = 0.9;

break;

case 5:

discount = 0.8;

break;

default:

discount = 0.75;

break;

}

total = amount * discount;

printf("打折率为:%.2f\n", discount);

printf("实际付款金额为:%.2f\n", total);

return 0;

}

在这个示例中,我们首先定义了变量

amount



discount



total

,分别用于存储输入的购物金额、打折率和实际付款金额。然后,我们使用

printf



scanf

分别输出提示信息和读取用户输入。接下来,我们使用

switch

语句根据购物金额计算打折率。在

switch

语句中,我们使用

(int)amount / 100

将购物金额除以100并取整,得到购物金额所在的区间。然后,根据不同的区间设置不同的打折率。最后,我们计算实际付款金额,并使用

printf

输出打折率和实际付款金额。

求教c语言中switch 语句的详细用法

C语言程序语句switch:
  switch用在编程中,如C语言中它经常跟case一起使用,是一个判断选择代码。其功能就是控制业务流程流转的。
  switch语句的语法如下(switch,case和default是关键字):
  switch ( controllingExpression )
  {
  case constantExpression1 :
  case constantExpression2 :
  case constantExpression3 :
  statements; //当满足constantExpression1、constantExpression2、constantExpression3任何一个都执行statements
  break;
  case constantExpression :
  statements ;
  break;
  ...
  default :
  statements ;
  break;
  }
  遵守switch语句规则
  switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:
  只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
  case标签必须是常量表达式(constantExpression),如42或者"42"。如果需要在运行时计算case标签的值,必须使用if语句。
  case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
  C语言switch应用例子:
  例一:
  #include

  int main()

  {

  double score;

  printf("请输入分数:\n");

  scanf("%lf",&score);

  switch((int)(score/10)) //如果写成witch((int)score/10)会出现严重错误

  {

  case 10:

  case 9:printf("A(最好)\n");break;

  case 8:printf("B(优秀)\n");break;

  case 7:printf("C(良好)\n");break;

  case 6:printf("D(及格)\n");break;

  case 5:

  case 4:

  case 3:

  case 2:

  case 1:

  case 0:printf("E(不及格)\n");break;

  default:printf("Error!\n");

  }

  }

  例二:

  #include

  int main()

  {

  char rank;

  printf("请输入分数等级:(A、B、C、D、E)\n");

  scanf("%c",&rank);

  switch(rank)//switch((int)score/10)出现严重错误,switch(((int)score)/10)出现严重错误,

  {

  case 'A':printf("A(90~100)\n");break;

  case 'B':printf("B(80~89)\n");break;

  case 'C':printf("C(70~79)\n");break;

  case 'D':printf("D(60~69)\n");break;

  case 'E':printf("E(0~59)\n");break;

  default:printf("error!\n");break;

  }

  }

  例三:

  输入年月日,判断这一天是这一年的第几天。

  #include

  int main()

  {

  int year,month,date,leap,days=0;

  scanf("%4d%2d%2d",&year,&month,&date);

  leap=(year%4==0&&year%100!=0||year%400==0);

  switch(month)

  {

  case 12:days+=30;

  case 11:days+=31;

  case 10:days+=30;

  case 9:days+=31;

  case 8:days+=31;

  case 7:days+=30;

  case 6:days+=31;

  case 5:days+=30;

  case 4:days+=31;

  case 3:days+=28+leap;

  case 2:days+=31;

  case 1:days+=date;break;

  }

  printf("%4d年%2d月%2d日是这一年的第%d天。\n",year,month,date,days);

  }

希望对你有帮助。

这个是多分支时用到的

如果问题是有多个互拆的条件时,那么用这个最好

和多个if-else if--else实现的功能相同

如输出学生成绩的abcde分段,90-100为a,80-89为b,以此类推

注意的地方

1、条件必须互拆

2、case空格 符合的条件 冒号 处理 break

如 case 1: add();break;

如果不用break,那么会执行下面的case项

3、有default项,是都没有case处理的时候的,可以没有

switch(a)

{

case 1:

break;

case 2:

break;

case 3:

break;

default:

}

不断判断是否符合各个case的值,如果符合,就执行后面的语句

switch(a)

{

case 1:

break;

case 2:

break;

case 3:

break;

default:

}

switch 是一个开关语句,和case配套使用, 和if else 判断语句差不多, switch 语句是用于多分支语句进行条件判断,比如:

i++;

switch (i)

{

case 1 : P1 = 0xFE; //i =1; 执行P1 = 0XFE;

breK; //执行完成后跳出

case 2 : P1 = 0xFD; //i =2; 执行P1 = 0XFD;

break;

case 3 : P1 = 0xFB; //i =3; 执行P1 = 0XFB;

break;

case 4 : P1 = 0xF7 //i =4; 执行P1 = 0X7E;

break;

..........................................................................

default: break; //如果i 不符合以上条件直接跳出不执行任何东西

}

建议你还是先把C语言看熟把,书上都写的很清楚。

C语言switch语句

执行了两次default,第一次n=8,然后n++,变成9,往下执行,但没有case9的情况,所以又执行了一次default,输出n为9
判断n =9执行default,然后执行n的后置-。。N=8;输出n=8;再执行后置+。n=9。。
没有break;继续执行。。到break退出。。 所以输出case 7里面的n = 9
因为你的default写在了最前面,所以首先匹配它,输出8,这时有两个运算n--和n++之后n为9,没有退出switch,因此继续执行case 7:后的内容,输出9,退出switch。就如你说到的结果为8和9。
switch(n--) //先引用n的值9,n再减1,9与后面没有匹配项,从default执行
{default:printf("%d",n++);//执行,输出8
case 8:
case 7:printf("%d",n);break; //执行,输出8,执行者break;后程序结束。

有关C语言 switch语句的例题讲解

switch case是顺序执行的,只要case成立,没有break,那么会一直顺序执行下去,直到遇到break。所以第一个case1成立之后开始switch(b<0),但是后面没有遇到break,所以继续执行case0,在case0之后执行switch-case1 遇到了break,这样最外面的switch暂停。
举个例子吧:
int a=0;int b=0;
switch(a)
{case 0:b++;
case 1:b++
case 2:b++;
default :printf("default");
}//执行完毕之后b应该是3
如果没有break语句,那么上一个case执行完了就会接着执行下一个case,而不管case条件是否满足。
这里第一层switch语句a>0成立,也就是表达式值为1,所以跳转到case 1处,case 1下面的第二层switch语句b<0不成立,表达式值为0,没有符合的case,也没有default,结束,顺序执行第一层switch语句的case 0(因为case 1没有break), 第二层switch语句条件为c==5成立,表达式值为1,跳转到case 1,输出"#",break跳出第二层switch语句,顺序执行第一层switch语句的default(仍然是没有break),输出"&"
因为case1后面没有break。就会继续像后面执行。break的作用就是向外一层终止循环。
C语言的switch 因为你的第一个case 1:没有break
格式太 不好了,我给你弄了下很清楚明显了,希望以后一定要注意格式,这样不仅美观,而且对找问题很有帮组:
void main()
{
int a=2,b=7,c=5;
switch(a>0)
{
case 1:
switch(b<0) //b明显大于0,所以这里的判断b<0得到的结果明显为假,也就是0,而下面的case里面只有1,2所以都不满足
{
case 1:printf("@");break;
case 2:printf("!");break;
//上面2个条件都不满足,而后面又没有break等,所以顺序执行下面的语句
}
case 0: //也就是到这里来了
switch(c==5) //c明显等于5,所以这里得到的结果真,也就是1
{
case 0:printf("*");break;
case 1:printf("#");break; //满足这个条件,然后打印“#”,并break推出
case 2:printf("$");break;
}
default:printf("&");
}
printf("\n");
}

c语言中的switch语句

switch ... case 只能处理定值,处理不了范围,你这个问题只能用if else 来处理
if( x<=850 )
y = 0;
else if( x<=1350 )
y = 5;
else if( x<=2850 )
y = 10;
else if( y<=5850 )
y = 15;
else //最后一个条件和倒数第2个重复了
#include

阅读更多 >>>  printf输出格式保留两位小数,一个单精度变亮输出宽度为六保留两位小数怎么输出

int main()

{

int x;

printf("请输入X的值\n");

scanf("%d",&x);

int n;

if(x<=850)

{

n=1;

}

if(x<=1350 && x>850)

{

n=2;

}

if(x<=2850 &&x>1350)

{

n=3;

}

if(x<=5850 && x>2850)

{

n=4;

}

if(x>5850)

{

n=5;

}

switch(n)

{

case 1:printf("y=0\n");break;

case 2:printf("y=5\n");break;

case 3:printf("y=10\n");break;

case 4:printf("y=15\n");break;

case 5:printf("y=20\n");break;

default:printf("ERROR");break;

}

return 0;

}

非要用switch语句的话只好这样啦。

#include

void main()

{int c,y,x;

printf("输入一个数x=");

scanf("%d",&x);

if(x<=850)

c=0;

else if((850
<x)&&(x<=1350))
c=1;

else if((1350
<x)&&(x<=2850))
c=2;

else if((2850
<x)&&(x<=5850))
c=3;

else

c=4;

switch(c)

{case(0):printf("y=0\n");break;

case(1):printf("y=5\n");break;

case(2):printf("y=10\n");break;

case(3):printf("y=15\n");break;

case(4):printf("y=20\n");break;

}

}

switch不能判断一个数的范围。除非这些数成线性关系,进行归一化处理,使其每个条件变成一个数。

若没有规律可以处理,还非要用switch会很累的。如下:

switch(x)

{

case 0:

case 1:

...//此处省略n行

case 850:

y=0;break;

case 851:

case 852;

...//没完没了的省略

case 1350;

y=5;break;

...//省略很多呢

}

switch (((x-850)>0)?0:((x-851)/500+1))

{

case 0:

y = 0;

break;

case 1:

y = 5;

break;

case 2:

case 3:

case 4:

y = 10;

break;

case 5:

case 6:

case 7:

case 8:

case 9:

case 10:

y = 15;

break;

default:

y = 20;

break;

}

希望对你能有帮助

简单的说switch语句也是属于判断语句,if else语句适合3个以内的判断,但是多了用if就不太方便了,所以这时3个以上的判断用switch语句就比较方便了,结构就像楼上的兄弟们那样写的,大概怎么用我举个例子你就懂了。

例:判断一周的食谱,就是星期几的食谱是什么,首先一个星期7天,那么判断七次,用switch语句写法如下:

#include

void main()

{

int a;//定义变量用于开辟1到7的数字即一星期的天数。

printf("看看星期几的食谱是什么?");

scanf("%d",&a);

switch(a)//开始判断1-7的食谱。

{

case 1:printf("星期一吃水果\n");

break;//结束语句,判断这天后提示完就不执行下面的语句了,否则逻辑错误。

case 2:printf("星期二吃蔬菜\n");

break;

case 3:printf("星期三吃火锅\n");

break;

case 4:printf("星期四吃米饭\n");

break;

case 5:printf("星期五吃西餐\n");

break;

case 6:printf("星期六吃米饭\n");

break;

case 7:printf("星期天吃满汉全席\n");

break;

default:printf("请输入正确的日期\n");//default语句类似else,如果不输入1到7的正确日期就显示这个语句。

break;

}

}
</x)&&(x<=5850))
</x)&&(x<=2850))
</x)&&(x<=1350))

C语言switch语句例题

首先,你的程序有问题!printf后面没有那个冒号。
#include

int main()

{

int k;

scanf("%d",&k);

switch(k)

{

case 1:printf("%d\n",k++);

case 2:printf("%d\n",k++);

case 3:printf("%d\n",k++);

case 4:printf("%d\n",k++);

break;

default:printf("FULL!\n");

}

return 0;

}

/////////////输入1

输出:

1

2

3

4

进入case 1,输出1

k变成2,进入case 2,输出2

k变成3,进入case 3,输出3

k变成4,进入case 4,输出4

遇到break,退出switch。

输入3过程是一样的,只是从case 3开始,输出:

3

4

你的程式应该写错了吧,正确的应该是:

#include

int main()

{

int k;

scanf("%d",&k);

switch(k)

{

case 1:

printf("%d\n",k++);

case 2:

printf("%d\n",k++);

case 3:

printf("%d\n",k++);

case 4:

printf("%d\n",k++);

break;

default:

printf("FULL!\n");

}

return 0;

}

输入1,则为 1 2 3 4,因为case1到case4

输入3,则为 3 4,因为case3到case4

主要是break的应用

printf后面没有那个冒号

输入1时:

1

2

3

4

输入3时:

3

4

for 1, you will have

1

2

3

4

for 3, you will have

3

4

Since you don't have break for each cases, except case 4

输入1时,case 1到case4都会执行,输入3时只执行case 3和case4!

题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续

判断第二个字母。

1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。

2.程序源代码:

#include

void main()

{

char letter;

printf("please input the first letter of someday\n");

while ((letter=getch())!='Y')/*当所按字母为Y时才结束*/

{ switch (letter)

{case 'S':printf("please input second letter\n");

if((letter=getch())=='a')

printf("saturday\n");

else if ((letter=getch())=='u')

printf("sunday\n");

else printf("data error\n");

break;

case 'F':printf("friday\n");break;

case 'M':printf("monday\n");break;

case 'T':printf("please input second letter\n");

if((letter=getch())=='u')

printf("tuesday\n");

else if ((letter=getch())=='h')

printf("thursday\n");

else printf("data error\n");

break;

case 'W':printf("wednesday\n");break;

default: printf("data error\n");

}

}

}

==============================================================

题目:Press any key to change color, do you want to try it. Please hurry up!

1.程序分析:

2.程序源代码:

#include

void main(void)

{

int color;

for (color = 0; color < 8; color++)

{

textbackground(color);/*设置文本的背景颜色*/

cprintf("This is color %d\r\n", color);

cprintf("Press any key to continue\r\n");

getch();/*输入字符看不见*/

}

}

==============================================================

题目:学习gotoxy()与clrscr()函数

1.程序分析:

2.程序源代码:

#include

void main(void)

{

clrscr();/*清屏函数*/

textbackground(2);

gotoxy(1, 5);/*定位函数*/

cprintf("Output at row 5 column 1\n");

textbackground(3);

gotoxy(20, 10);

cprintf("Output at row 10 column 20\n");

}

==============================================================

题目:练习函数调用

1. 程序分析:

2.程序源代码:

#include

void hello_world(void)

{

printf("Hello, world!\n");

}

void three_hellos(void)

{

int counter;

for (counter = 1; counter <= 3; counter++)

hello_world();/*调用此函数*/

}

void main(void)

{

three_hellos();/*调用此函数*/

}

==============================================================

题目:文本颜色设置

1.程序分析:

2.程序源代码:

#include

void main(void)

{

int color;

for (color = 1; color < 16; color++)

{

textcolor(color);/*设置文本颜色*/

cprintf("This is color %d\r\n", color);

}

textcolor(128 + 15);

cprintf("This is blinking\r\n");

}

==============================================================

题目:求100之内的素数

1.程序分析:

2.程序源代码:

#include

#include "math.h"

#define N 101

main()

{

int i,j,line,a[N];

for(i=2;ifor(i=2;i for(j=i+1;j {

if(a[i]!=0&&a[j]!=0)

if(a[j]%a[i]==0)

a[j]=0;}

printf("\n");

for(i=2,line=0;i{

if(a[i]!=0)

{printf("]",a[i]);

line++;}

if(line==10)

{printf("\n");

line=0;}

}

}

==============================================================

题目:对10个数进行排序

1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,

下次类推,即用第二个元素与后8个进行比较,并进行交换。

2.程序源代码:

#define N 10

main()

{int i,j,min,tem,a[N];

/*input data*/

printf("please input ten num:\n");

for(i=0;i{

printf("a[%d]=",i);

scanf("%d",&a[i]);}

printf("\n");

for(i=0;iprintf("]",a[i]);

printf("\n");

/*sort ten num*/

for(i=0;i{min=i;

for(j=i+1;jif(a[min]>a[j]) min=j;

tem=a[i];

a[i]=a[min];

a[min]=tem;

}

/*output data*/

printf("After sorted \n");

for(i=0;iprintf("]",a[i]);

}

==============================================================

题目:求一个3*3矩阵对角线元素之和

1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

2.程序源代码:

main()

{

float a[3][3],sum=0;

int i,j;

printf("please input rectangle element:\n");

for(i=0;i<3;i++)

for(j=0;j<3;j++)

scanf("%f",&a[i][j]);

for(i=0;i<3;i++)

sum=sum+a[i][i];

printf("duijiaoxian he is %6.2f",sum);

}

==============================================================

题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后

此元素之后的数,依次后移一个位置。

2.程序源代码:

main()

{

int a[11]=;

int temp1,temp2,number,end,i,j;

printf("original array is:\n");

for(i=0;i<10;i++)

printf("]",a[i]);

printf("\n");

printf("insert a new number:");

scanf("%d",&number);

end=a[9];

if(number>end)

a[10]=number;

else

{for(i=0;i<10;i++)

{ if(a[i]>number)

{temp1=a[i];

a[i]=number;

for(j=i+1;j<11;j++)

{temp2=a[j];

a[j]=temp1;

temp1=temp2;

}

break;

}

}

}

for(i=0;i<11;i++)

printf("m",a[i]);

}

==============================================================

题目:将一个数组逆序输出。

1.程序分析:用第一个与最后一个交换。

2.程序源代码:

#define N 5

main()

,i,temp;

printf("\n original array:\n");

for(i=0;i printf("M",a[i]);

for(i=0;i {temp=a[i];

a[i]=a[N-i-1];

a[N-i-1]=temp;

}

printf("\n sorted array:\n");

for(i=0;i printf("M",a[i]);

}

题目:学习static定义静态变量的用法

1.程序分析:

2.程序源代码:

#include "stdio.h"

varfunc()

{

int var=0;

static int static_var=0;

printf("\40:var equal %d \n",var);

printf("\40:static var equal %d \n",static_var);

printf("\n");

var++;

static_var++;

}

void main()

{int i;

for(i=0;i<3;i++)

varfunc();

}

==============================================================

题目:学习使用auto定义变量的用法

1.程序分析:

2.程序源代码:

#include "stdio.h"

main()

{int i,num;

num=2;

for (i=0;i<3;i++)

{ printf("\40: The num equal %d \n",num);

num++;

{

auto int num=1;

printf("\40: The internal block num equal %d \n",num);

num++;

}

}

}

==============================================================

题目:学习使用static的另一用法。

1.程序分析:

2.程序源代码:

#include "stdio.h"

main()

{

int i,num;

num=2;

for(i=0;i<3;i++)

{

printf("\40: The num equal %d \n",num);

num++;

{

static int num=1;

printf("\40:The internal block num equal %d\n",num);

num++;

}

}

}

==============================================================

题目:学习使用external的用法。

1.程序分析:

2.程序源代码:

#include "stdio.h"

int a,b,c;

void add()

{ int a;

a=3;

c=a+b;

}

void main()

{ a=b=4;

add();

printf("The value of c is equal to %d\n",c);

}

==============================================================

题目:学习使用register定义变量的方法。

1.程序分析:

2.程序源代码:

void main()

{

register int i;

int tmp=0;

for(i=1;i<=100;i++)

tmp+=i;

printf("The sum is %d\n",tmp);

}

==============================================================

题目:宏#define命令练习(1)

1.程序分析:

2.程序源代码:

#include "stdio.h"

#define TRUE 1

#define FALSE 0

#define SQ(x) (x)*(x)

void main()

{

int num;

int again=1;

printf("\40: Program will stop if input value less than 50.\n");

while(again)

{

printf("\40:Please input number==>");

scanf("%d",&num);

printf("\40:The square for this number is %d \n",SQ(num));

if(num>=50)

again=TRUE;

else

again=FALSE;

}

}

==============================================================

题目:宏#define命令练习(2)

1.程序分析:

2.程序源代码:

#include "stdio.h"

#define exchange(a,b) { \ /*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/

int t;\

t=a;\

a=b;\

b=t;\

}

void main(void)

{

int x=10;

int y=20;

printf("x=%d; y=%d\n",x,y);

exchange(x,y);

printf("x=%d; y=%d\n",x,y);

}

==============================================================

题目:宏#define命令练习(3)

1.程序分析:

2.程序源代码:

#define LAG >

#define SMA <

#define EQ ==

#include "stdio.h"

void main()

{ int i=10;

int j=20;

if(i LAG j)

printf("\40: %d larger than %d \n",i,j);

else if(i EQ j)

printf("\40: %d equal to %d \n",i,j);

else if(i SMA j)

printf("\40:%d smaller than %d \n",i,j);

else

printf("\40: No such value.\n");

}

==============================================================

题目:#if #ifdef和#ifndef的综合应用。

1. 程序分析:

2.程序源代码:

#include "stdio.h"

#define MAX

#define MAXIMUM(x,y) (x>y)?x:y

#define MINIMUM(x,y) (x>y)?y:x

void main()

{ int a=10,b=20;

#ifdef MAX

printf("\40: The larger one is %d\n",MAXIMUM(a,b));

#else

printf("\40: The lower one is %d\n",MINIMUM(a,b));

#endif

#ifndef MIN

printf("\40: The lower one is %d\n",MINIMUM(a,b));

#else

printf("\40: The larger one is %d\n",MAXIMUM(a,b));

#endif

#undef MAX

#ifdef MAX

printf("\40: The larger one is %d\n",MAXIMUM(a,b));

#else

printf("\40: The lower one is %d\n",MINIMUM(a,b));

#endif

#define MIN

#ifndef MIN

printf("\40: The lower one is %d\n",MINIMUM(a,b));

#else

printf("\40: The larger one is %d\n",MAXIMUM(a,b));

#endif

}

==============================================================

题目:#include 的应用练习

1.程序分析:

2.程序源代码:

test.h 文件如下:

#define LAG >

#define SMA <

#define EQ ==

#include "test.h" /*一个新文件50.c,包含test.h*/

#include "stdio.h"

void main()

{ int i=10;

int j=20;

if(i LAG j)

printf("\40: %d larger than %d \n",i,j);

else if(i EQ j)

printf("\40: %d equal to %d \n",i,j);

else if(i SMA j)

printf("\40:%d smaller than %d \n",i,j);

else

printf("\40: No such value.\n");

}

题目:学习使用按位与 & 。

1.程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1

2.程序源代码:

#include "stdio.h"

main()

{

int a,b;

a=077;

b=a&3;

printf("\40: The a & b(decimal) is %d \n",b);

b&=7;

printf("\40: The a & b(decimal) is %d \n",b);

}

==============================================================

题目:学习使用按位或 | 。

1.程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1

2.程序源代码:

#include "stdio.h"

main()

{

int a,b;

a=077;

b=a|3;

printf("\40: The a & b(decimal) is %d \n",b);

b|=7;

printf("\40: The a & b(decimal) is %d \n",b);

}

==============================================================

题目:学习使用按位异或 ^ 。

1.程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0

2.程序源代码:

#include "stdio.h"

main()

{

int a,b;

a=077;

b=a^3;

printf("\40: The a & b(decimal) is %d \n",b);

b^=7;

printf("\40: The a & b(decimal) is %d \n",b);

}

==============================================================

题目:取一个整数a从右端开始的4~7位。

程序分析:可以这样考虑:

(1)先使a右移4位。

(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)

(3)将上面二者进行&运算。

2.程序源代码:

main()

{

unsigned a,b,c,d;

scanf("%o",&a);

b=a>>4;

c=~(~0<<4);

d=b&c;

printf("%o\n%o\n",a,d);

}

==============================================================

题目:学习使用按位取反~。

1.程序分析:~0=1; ~1=0;

2.程序源代码:

#include "stdio.h"

main()

{

int a,b;

a=234;

b=~a;

printf("\40: The a's 1 complement(decimal) is %d \n",b);

a=~a;

printf("\40: The a's 1 complement(hexidecimal) is %x \n",a);

}

==============================================================

题目:画图,学用circle画圆形。

1.程序分析:

2.程序源代码:

/*circle*/

#include "graphics.h"

main()

{int driver,mode,i;

float j=1,k=1;

driver=VGA;mode=VGAHI;

initgraph(&driver,&mode,"");

setbkcolor(YELLOW);

for(i=0;i<=25;i++)

{

setcolor(8);

circle(310,250,k);

k=k+j;

j=j+0.3;

}

}

==============================================================

题目:画图,学用line画直线。

1.程序分析:

2.程序源代码:

#include "graphics.h"

main()

{int driver,mode,i;

float x0,y0,y1,x1;

float j=12,k;

driver=VGA;mode=VGAHI;

initgraph(&driver,&mode,"");

setbkcolor(GREEN);

x0=263;y0=263;y1=275;x1=275;

for(i=0;i<=18;i++)

{

setcolor(5);

line(x0,y0,x0,y1);

x0=x0-5;

y0=y0-5;

x1=x1+5;

y1=y1+5;

j=j+10;

}

x0=263;y1=275;y0=263;

for(i=0;i<=20;i++)

{

setcolor(5);

line(x0,y0,x0,y1);

x0=x0+5;

y0=y0+5;

y1=y1-5;

}

}

==============================================================

题目:画图,学用rectangle画方形。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

2.程序源代码:

#include "graphics.h"

main()

{int x0,y0,y1,x1,driver,mode,i;

driver=VGA;mode=VGAHI;

initgraph(&driver,&mode,"");

setbkcolor(YELLOW);

x0=263;y0=263;y1=275;x1=275;

for(i=0;i<=18;i++)

{

setcolor(1);

rectangle(x0,y0,x1,y1);

x0=x0-5;

y0=y0-5;

x1=x1+5;

y1=y1+5;

}

settextstyle(DEFAULT_FONT,HORIZ_DIR,2);

outtextxy(150,40,"How beautiful it is!");

line(130,60,480,60);

setcolor(2);

circle(269,269,137);

}

==============================================================

题目:画图,综合例子。

1.程序分析:

2.程序源代码:

# define PAI 3.1415926

# define B 0.809

# include "graphics.h"

#include "math.h"

main()

{

int i,j,k,x0,y0,x,y,driver,mode;

float a;

driver=CGA;mode=CGAC0;

initgraph(&driver,&mode,"");

setcolor(3);

setbkcolor(GREEN);

x0=150;y0=100;

circle(x0,y0,10);

circle(x0,y0,20);

circle(x0,y0,50);

for(i=0;i<16;i++)

{

a=(2*PAI/16)*i;

x=ceil(x0+48*cos(a));

y=ceil(y0+48*sin(a)*B);

setcolor(2); line(x0,y0,x,y);}

setcolor(3);circle(x0,y0,60);

/* Make 0 time normal size letters */

settextstyle(DEFAULT_FONT,HORIZ_DIR,0);

outtextxy(10,170,"press a key");

getch();

setfillstyle(HATCH_FILL,YELLOW);

floodfill(202,100,WHITE);

getch();

for(k=0;k<=500;k++)

{

setcolor(3);

for(i=0;i<=16;i++)

{

a=(2*PAI/16)*i+(2*PAI/180)*k;

x=ceil(x0+48*cos(a));

y=ceil(y0+48+sin(a)*B);

setcolor(2); line(x0,y0,x,y);

}

for(j=1;j<=50;j++)

{

a=(2*PAI/16)*i+(2*PAI/180)*k-1;

x=ceil(x0+48*cos(a));

y=ceil(y0+48*sin(a)*B);

line(x0,y0,x,y);

}

}

restorecrtmode();

}

==============================================================

题目:画图,综合例子。

1.程序分析:

2.程序源代码:

#include "graphics.h"

#define LEFT 0

#define TOP 0

#define RIGHT 639

#define BOTTOM 479

#define LINES 400

#define MAXCOLOR 15

main()

{

int driver,mode,error;

int x1,y1;

int x2,y2;

int dx1,dy1,dx2,dy2,i=1;

int count=0;

int color=0;

driver=VGA;

mode=VGAHI;

initgraph(&driver,&mode,"");

x1=x2=y1=y2=10;

dx1=dy1=2;

dx2=dy2=3;

while(!kbhit())

{

line(x1,y1,x2,y2);

x1+=dx1;y1+=dy1;

x2+=dx2;y2+dy2;

if(x1<=LEFT||x1>=RIGHT)

dx1=-dx1;

if(y1<=TOP||y1>=BOTTOM)

dy1=-dy1;

if(x2<=LEFT||x2>=RIGHT)

dx2=-dx2;

if(y2<=TOP||y2>=BOTTOM)

dy2=-dy2;

if(++count>LINES)

{

setcolor(color);

color=(color>=MAXCOLOR)?0:++color;

}

}

closegraph();

}

另外,站长团上有产品团购,便宜有保证

阅读更多 >>>  select语句查询,谁可以给我全部的SQL查询语句?

c语言switch语句

特意找课本看了一下:
switch(表达式)
{
case常量表达式1: 语句1;
case常量表达式2: 语句2;

case常量表达式n: 语句n;
default : 语句n+1;
}
其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。 如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。
在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况, C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。
C语言中,switch语句的使用格式如下:
switch(表达式)
{
case 常量表达式1 : 语句1; break;
case 常量表达式2 : 语句2; break;
......
case 常量表达式n : 语句n; break;
default : 语句n+1;
}
举例如下:
int i=4, a=0;switch(i){ case 1 : a++; break; // 如果i=1,执行case 1 后面的语句,执行完后退出switch case 2 : a+=2; break; // 如果i=2,执行case 2 后面的语句,执行完后退出switch case 4 : a+=4; break; // 如果i=4,执行case 4 后面的语句,执行完后退出switch default : a=0; // 如果i不等于上面所以case中的值,执行default后面的语句,执行完后退出switch}
楼主好,楼上的哥们好!
楼上的两位哥们都是直接把x当整型处理的,楼主并没有说x是整型啊,对不对?
这是我的程序:
#include

main()

{

double

x,y;

int

a;

scanf("%lf",&x);

a=(int)x;

/*将x的值强制转换为整形,也就是截去小数点后面的,赋给a*/

switch(a)

{

case

-4:y=x-1;break;

case

-3:y=x-1;break;

case

-2:y=x-1;break;

case

-1:y=x-1;break;

/*********************

其实上面这一段可以写成这样

case

-4:

case

-3:

case

-2:

case

-1:

y=x-1;break;

简化程序

下边这段也同理....

***********************/

case

7:y=x+1;break;

case

6:y=x+1;break;

case

5:y=x+1;break;

case

4:y=x+1;break;

case

3:y=x+1;break;

case

2:y=x+1;break;

case

1:y=x+1;break;

case

0:y=x;break;

default:printf("Input

Error\n");goto

loop;

}

printf("x=%lf\ny=%lf\n",x,y);

loop:;

getch();

}

这样不管你输入是整数还是浮点数都行啦....

其实一楼的哥们的方法超好啊。如果把int

x,y改成double

x,y就完美了..(这好像不是个问题.....)

程序我测试过了,没发现问题。(饿只是说饿没有发现问题,谁发现的问题快点指正!!!)

====================================

lipbb说的很对,上面我写的程序确实有错误....懒得改了.....这是我想的另一个方法:

用switch嵌套,饿测试过了,没发现问题。(饿只是说饿没有发现问题,谁发现的问题快点指正!!!)

#include

main()

{

double

x,y;

printf("please

input

x\n");

scanf("%lf",&x);

switch(-5
<x&&x<0)
{

case

1:y=x-1;break;

case

0:

{

switch(x==0)

{

case

1:y=x;break;

case

0:

{

switch(0
<x&&x<8)
{

case

1:y=x+1;break;

case

0:printf("Input

Error\n");goto

loop;

}

}break;

}

}break;

}

printf("x=%lf\ny=%lf",x,y);

loop:;

getch();

}

楼主有不明白的地方可以给我留言。

先回答你第一个问题

首先 如果只有一条语句的话, a++; 和 ++a; 效果是一样的,都是a自加1

因为没别的语句, 先执行后自加和先自加后执行效果是一样的, 只有有别的

语句的时候效果才不一样,比如 x = a++ ;与 x= ++a; 就不一样了。

第二个问题

case 语句是一个入口, 只要匹配进入了入口, 就会执行后面的所有语句

而不会再去判断 后面的case,只有碰到了break才会跳出循环,比如说

你上面如果case2 后面没有break的话, 他还会执行case3, 反正是从

匹配的值的位置开始, 执行下面所有的语句而不再判断

试着回答一下,你参考一下.

swich(x),进入case 1后,switch(y),执行a++;再break,跳出.

注意,此时那个]后面没有break;所以就执行case 2;成立,a++,b++;跳出;

最终,a=2,b=1;

int x=1,y=0,a=0,b=0;

switch (x)

{case 1:

switch(y)

{

case 0:a++;break;

case 1:b++;break;

} 此处没有break;

case 2: a++,b++;break;

case 3:a++,b++;

}

printf("a=%d,b=%d\n",a,b)

执行case 2是因为在switch (x) 中x=1,所以执行case 1,然而case 1 这条语句没有break,所以switch (x)在执行了case 1之后将继续往下依次执行case语句,直到碰到break就跳出switch 循环。

对于“a的自加是先执行后在自加,当此程序a自加的时候没有执行其他语句啊?????? ” 则是你没看到程序中的语句a++,b++它自加完了以后把值任然是赋值给a,b本身的,而不是赋值给其他变量例如c=a++;z=b++。如果是这样赋值给别的变量的话那么就很明确了c,z的值将和课本上说得一样都是自加以前的值 。也就是说这个程序当中最后printf输出的是a,b的值,但是a,b在自加过程中值都变化了,就是说相当于语句a=a++,b=b++.

我将你的程序进行了更改,你将两个程序都运行下然后再对照着看一下就明白为什么a,b的值最后是2和1了,程序如下

#include

main()

{

int x=1,y=0,a=0,b=0,c=0,z=0;

switch (x)

{case 1:

switch(y)

{

case 0:c=a++;break;

case 1:b++;break;

}

case 2: c=a++,z=b++;break;

case 3:a++,b++;

}

printf("c=%d,z=%d\n",c,z) ;

}

对于 ++i 和i++ 有什么区别?

简单而言: ++i在i 存储的值上增加一并向使用它的表达式“返回” 新的, 增加后的值; 而i++ 对i增加一, 但返回原来的是未增加的值。

阅读更多 >>>  update from 语句,update语句

</x&&x<8)
</x&&x<0)

网站数据信息

"switch语句例子c语言,求教c语言中switch 语句的详细用法"浏览人数已经达到23次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:switch语句例子c语言,求教c语言中switch 语句的详细用法的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!