c语言中应用switch语句编程:输入1-7之间的任意数字,程序按照用户的输入输出相应的星期值!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中应用switch语句编程:输入1-7之间的任意数字,程序按照用户的输入输出相应的星期值!!相关的知识,希望对你有一定的参考价值。

(分别使用数据1,7,8做测试。)

int n;
switch(n)

case 1:printf("今天是周一");break;
case 2:printf("今天是周二");break;
case 3:printf("今天是周三");break;
case 4:printf("今天是周四");break;
case 5:printf("今天是周五");break;
case 6:printf("今天是周六");break;
case 7:printf("今天是周日");break;
default:printf("输入星期错误");break;
参考技术A #include "stdio.h"
main()

int a;
printf("输入一个数:");
scanf("%d",&a);
switch(a)

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");break;

参考技术B #include<stdio.h>

int main()
int n;
printf("请输入星期数:\n");
scanf("%d",&n);
switch(n)

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("输入星期错误");break;


return 0;
本回答被提问者采纳

switch...case语句嵌套问题

main()
int x,y,a=0,b=0;
scanf("%d%d",&x,&y);
switch(x)
case 1:
switch(y)
case 0:a++;break;
case 1:b++;break;

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

printf("a=%d,b=%d",a,b);

_______________________________________________________
运行后
假如输入 1 0
结果是 a=2,b=1

但自己算感觉结果应该是a=1,b=0
求高人详细讲解

输入 1 0
先运行:
case 1:
switch(y)
case 0:a++;break;
case 1:b++;break;

因为y=0,所以运行:case 0:a++;break;
因为
case 1:
switch(y)
case 0:a++;break;
case 1:b++;break;

没有break;所以继续运行
case 2:a++;b++;break;
在这里break掉了,所以最后的执行有 a++ a++ b++;

要想得到:
a=1,b=0
改成这样:
case 1:
switch(y)
case 0:a++;break;
case 1:b++;break;

break;
case 2:a++;b++;break;
case 3:a++;b++;
参考技术A #include <stdio.h>
void main()

int x,y,a=0,b=0;
scanf("%d%d",&x,&y);
switch(x)

case 1: //x = 1,那么执行
switch(y) //y = 0 那么执行

case 0:a++;break; //执行这句之后a的值已经变成了1,这个时候a = 2 ,b=0,还是原来的是没变
case 1:b++;break;

case 2:a++;b++;break; //注意这个时候你并没有写break那么这句话是要执行的那么执行后a = 2 b =1然后跳出,输出
case 3:a++;b++;

printf("a=%d,b=%d.\n",a,b);
参考技术B switch(x)中的case 1: 没有break
所以程序会执行到 switch(x) 中的 case 2:
注意 break 只会跳出离它最近的
建议设置断点调试 break 流向。
参考技术C break跳出的是嵌套里面的那个switch,
跳出后a=1;
顺序执行了语句: 这里没有判断switch(x)没有作用
case 2:a++;b++;break;跳出循环
可以用下面的测试

int x,y,a=0,b=0;
cin>>x>>y;
switch(x)
case 1:
switch(y)
case 0:a++;break;
case 1:b++;break;

case 2:a++;b++;
cout<<a<<b;
break;
case 3:a++;b++;

cout<<a<<b;
参考技术D 这样你就明白了
main()
int x,y,a=0,b=0;
scanf("%d%d",&x,&y);
switch(x)
case 1:
printf("a=%d,b=%d\n",a,b);
switch(y)
case 0:a++;break;
case 1:b++;break;
printf("a=%d,b=%d\n",a,b);

case 2:a++;b++;
printf("a=%d,b=%d\n",a,b);break;
case 3:a++;b++;
printf("a=%d,b=%d\n",a,b);

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

以上是关于c语言中应用switch语句编程:输入1-7之间的任意数字,程序按照用户的输入输出相应的星期值!!的主要内容,如果未能解决你的问题,请参考以下文章

c语言case的用法

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

c语言:用switch语句处理菜单命令

switch用法

输入年份输出属相c语言,编写程序,输入一个年份,判断该年属相.(提示s

C语言编程常见错误集锦 下