c语言求助
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言求助相关的知识,希望对你有一定的参考价值。
#include "stdio.h"
void main()
loop: //除非选择0,否则重复
printf("================幸运数字================\n");
printf(" 1 --- 分析 2 --- 统计\n");
printf(" 3 --- 分析 4 --- 统计\n");
printf(" 5 --- 分析 6 --- 统计\n");
printf(" 7 --- 分析 0 --- 统计\n\n");
printf("请键入一个数字进行选择=>");
scanf("%c",&num););//这句话好像第二遍操作时没有作用啊,直接打“请输入正确的数字进行选择=>”
while (num!='1' &&num!='2' &&num!='3' &&num!='4' &&num!='5' &&num!='6' &&num!='7' &&num!='0' )
printf("请输入正确的数字进行选择=>");
scanf("%c",&num
switch (num)
case '1': FuncationOne(); break;
case '2': FuncationTwo(); break;
case '3': FuncationThree(); break;
case '4': FuncationFour(); break;
case '5': FuncationFive(); break;
case '6': FuncationSix(); break;
case '7': FuncationSeven(); break;
default: FuncationZero();
goto loop;
还是一样啊
但你程序结尾的时候是直接GOTO的,所以死循环。
在说为什么没执行第一个scanf的问题。
第一遍执行的时候不管你输入什么,都得以回车结束。所以你这个scanf就是回车。虽然回车能让scanf跳回不过如果你不清空缓存的话回车就被留下来了。
解决方法是加个清空缓存的函数。在scanf后面
fflush(stdin);
采纳吧。 参考技术A 这样就可以了,因为while的条件有问题
#include "stdio.h"
void main()
loop: /* 除非选择0,否则重复 */
printf("================幸运数字================\n");
printf(" 1 --- 分析 2 --- 统计\n");
printf(" 3 --- 分析 4 --- 统计\n");
printf(" 5 --- 分析 6 --- 统计\n");
printf(" 7 --- 分析 0 --- 统计\n\n");
printf("请键入一个数字进行选择=>");
scanf("%c",&num););/* 这句话好像第二遍操作时没有作用啊,直接打“请输入正确的数字进行选择=>” */
while (!(num>='0'&&num<='7') )/*当输入的字符 非1-7时*/
printf("请输入正确的数字进行选择=>");
scanf("%c",&num
switch (num)
case '1': FuncationOne(); break;
case '2': FuncationTwo(); break;
case '3': FuncationThree(); break;
case '4': FuncationFour(); break;
case '5': FuncationFive(); break;
case '6': FuncationSix(); break;
case '7': FuncationSeven(); break;
default: FuncationZero();
goto loop;
以上是关于c语言求助的主要内容,如果未能解决你的问题,请参考以下文章