c语言中输入的问题,麻烦高手来看看

作者&投稿:第仁 (若有异议请与网页底部的电邮联系)
麻烦帮我做一些c语言的题目啊,谢谢啦~

所有的题几乎都经过了测试。

1.d
2.c
3.c (实际是第二个选项)
4.d
5.b
6.a
7.b
8.c
9.d
10.b
11.a
12.c
13.d
14.d
15.2
16.2
17.1
18.2
19.2
20.2

第18题的答案肯定是2,y^y肯定是0,经过了测试。这是进行异或运算。

无论c1.c2初始值是什么,他运行;c1=getchar(); c2=getchar();然后你输入就给这两个语句赋值。最后; putchar(c1); putchar(c2)显示

方法一:
写一个循环while(1){
用gets()函数
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符
不属于这个字符串。其调用格式为:
gets(s);
其中s为字符串变量(字符串数组名或字符串指针)。

输入后用IF限制你要的范围,满足则break;跳出循环,否则打印提示语句,循环重输

}

当然了,如果你只判断输入是否满足条件,就不要循环了

方法二:定义一个char[]数组
然后往里面输入值,每输入一个字符判断一下ascII码范围,如果再在范围内则提示重输,用新输的值覆盖掉错误的值,等输入完后,再将字符数组中的值转换为想要的类型

可以输入字符串,在用程序转换成需要的类型。

这样排错是有的,也是必须的

我的建议你遇到这种情况时,定义的变量类型要选择char型数据存储,因为这样是可以排错的,比如:
char a;
scanf(“%c”,a);
你可以在程序中指定它的值范围,也就是说可以排错
if(a > '0')....
if(a > '1')....
等等方式
如果需要转化为int型数据那么可以用这个函数itoa(a)这样就把a转化为一个int型数据,或者自己写一个比如a - 48这种改变ascII码等等方式。
这样排错是比较全面的

一楼说的是一种方法,我以前也就是这样做的,而且这个也比较好实现。
但是我个人认为这样做没有太大意义。因为真正要使用的东西,是不会这样让用户在命令行窗口像我们写程序这样来使用的,最起码得有一定的图形界面,然而图形界面中对这样的输入判断就显得更加简单了。所以,楼主现在不必太在这个方面想。当然你严谨的态度是值得学习的。


在C语言运行出来的黑框框中输入的时候怎么换行?
看源程序,一般是回车键换行:程序运行后,光标闪烁等待输入:输入张三,换行的时候就用回车键:然后接着输入第二个数据李四,同样换行是用回车键:同样的方法输入5个同学,打印结果可看是没有问题:如果是其它数据,只需要修改数据类型。

C语言中怎么输入数字和字母?
这种方法和输入数字是类似的,%c仅读入一个字符,并赋值给c。2 c = getchar();getchar函数的功能就是读入一个字符,并以返回值形式返回。三、输入一串字符(以空白字符分隔)。可以用scanf的%s格式。char str[100];\/\/空间要定义足够大 scanf("%s", str);\/\/将字符串读入并存在str中 四,读入...

C语言问题:输入五个国家的名称按字母顺序排列输出。
main(){ char st[20],cs[5][20]; \/\/cs存放五个名字 int i,j,p; \/\/定义p就是浪费,没用,可以删掉 printf("input country's name:\\n"); \/\/提示输入 for(i=0;i<5;i++) \/\/循环读5个字符串(国家名字)放到cs数组里 gets(cs[i]);printf("\\n"); \/\/输出个换行符,为了输出格式...

c语言中如何输入输出字符串
在C语言中,输入输出字符串有以下两种方式:1 用scanf\/printf输入输出。scanf\/printf是C语言的格式化输入输出函数,可以用于输入输出各种基础类型,字符串(char*)也 其支持范围内。格式化字符为%s。定义 char str[100];输入 scanf("%s",str);输出 printf("%s",str);2 C语言还支持专门的字符串输入...

关于c语言中scanf的问题?
scanf后面的%f格式,必须与输入格式相一致 按您的输入,中间用逗号,与scanf中%f之间格式不符,结果只接收了第1个变量,后面没接收,因而是零(有的编译器会是随机数),正确写法:(1)如果:scanf中%f之间用空格,即:scanf("%f %f %f",&a,&b,&c);应该输入1 2 3(中间有空格)(2)如果:...

请问为什么输入100和输入100.0结果相差那么多啊?C语言中的问题。
你C语言第一课肯定没认真听讲,C语言的\/号与我们日常生活中的除法的运算规则是不一样的.C语言所有的运算符都有这个规则:精度较低的因子会向精度较高的一个因子自动转换的.其结果的类型是精度最高的因子的类型.两个int类型的\/运算,其结果就是int类型的,比如9\/10=0 其中一个精度较高,比如int\/float...

C语言中如何输入输出文字
需要准备的材料分别有:电脑、C语言编译器。1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:char a[20];gets(a);puts(a);。3、编译器运行test.cpp文件,此时可以输入文字。4、按回车,此时会输出刚才输入的文字。

怎么解决搜狗输入法首字母大小写问题?
1. 检查输入法设置:打开搜狗输入法设置,检查是否有关于首字母大小写的设置项。如果有,确保这些设置正确无误。2. 更新输入法到最新版本:有时候软件问题可以通过更新到最新版本得到解决。打开搜狗输入法的官网或下载中心,下载并安装最新版本。3. 检查输入法设置中的语言和输入方式选项:在搜狗输入法的...

求解C语言中,空格在输入时的作用?。。。
在scanf()语句中,空格有特殊作用:一般在编写程序时,不提倡写入空格,因为可能会出现难以预知的变化。因为它规定:(1)当输入的是数字时,比如scanf("%d",a);这时你输入空格是当作没有输入的,如输入“(空格)(空格)(空格)(回车)“,程序还在那里等着呢!可是如果你如果输入”(空格)(...

C语言中有输入但必需要有输出吗?
include<stdio.h> int main(){ int i,sum=0;for(i=1;i<=10;i++)sum+=i; \/\/printf("%d\\n",sum);return 0;} 程序可以正确编译并运行,但是并不知道1到10的累加和是多少。如果C语言没有输出,算法再优秀也是无用功,不能解决问题,所以C语言就有规定至少要有一个或者多个输出,即...

石楼县18023216199: C语言输入问题
须承同笑: 程序在执行过程中一直在等待用户输入,如果输入不是<回车>的话,将输入的数据存放到一个缓冲区里面.如果此时发现输入是回车,就会将在缓冲区里面的数据进行按照"%f"进行格式化,格式化完时发现已经完成了格式化的信息,将会退出...

石楼县18023216199: c语言中 为什么有时候输入.就陷入死循环了??? -
须承同笑: 那要看你输入的是什么,还有具体问题具体分析. 比如说有的时候让你输入除数,你输入了0.0是不能做除数的,而你的程序中又没有列出当用户输入0时,程序应该干什么,是应该报错呢,还是当做1处理呢.计算机不知道该怎么做,他只知...

石楼县18023216199: c语言字符串输入的问题,求解 -
须承同笑: 编译器问题. VS 不允许使用scanf 而要用scanf_s 你的代码 scanf(“%s”,a,10)是错误的. 需要 scanf_s("%s",a,10); 对于%c和%s的,都需要加最大长度限定. 不方便,但是VS就这么规定 没办法. 要么不用VS,要么接受

石楼县18023216199: C语言中关于scanf输入字符问题大神速来 -
须承同笑: 原因是在input函数里面有接受用户输入的动作,而输入一定是以回车结束,那么这个回车就会残留在缓存中,而当你的scanf读取flag的时候,程序会自动获取前面的那个回车符号,这就是用%c会自动跳过的原因,而用%s的话,程序就会等待下一行输入,回车符号并不会被接收,建议在scanf("%c", &flag);修改为: fflush(stdin); //清空缓存 scanf("%c", &flag);

石楼县18023216199: C语言的一个输入语句问题
须承同笑: 要知道,C语言中所有的输入都是保存在输入流中的,因此,你所有的输入(包括空格回车)都会被保存下来,直到有输入函数(像scanf()、getc()、getchar()...)来读取它们.而在C语言中,空格和回车都当做数据结束符(除非是当字符读入),因此如果连用两个或以上的scanf()函数,第一个scanf()的结束符(回车)就会被读到第二个scanf()的第一个变量中,而你的第二句中的第二个scanf()读入的第一个数据是空格(即数据结束符),所以才能避免回车被变量c读入.

石楼县18023216199: C语言中输入数字的一个问题!!!!!!!求高手 -
须承同笑: #include<stdio.h> int main() { int i,j,a,b; scanf("%d\n",i); printf("please input number\n"); scanf("%d\t",a); b=a; for(j=i;j>0;j--){ printf("please input number\n"); scanf("%d\t",a); if(a!=b){ printf("you input error,please input again\n"); j++; } } }

石楼县18023216199: C语言的输入问题
须承同笑: 嗯,楼上正解. 按回车时,输入的不仅是确定符,还有一个换行符,这个换行符会被存储在缓存区里,如果下面有scanf("%c",&ch),scanf就会从缓存区里读取字符. 加个fflush(stdin)或getchar()都行.fflush(stdin是清楚缓存区,getchar()是把那个字符吃掉.

石楼县18023216199: C语言结构变量输入问题急急急急急急急急
须承同笑: 检查类型是否对应. 读入的格式是否正确. 比如:在scanf中定义的格式为:“%d%f”,输入就可能产生问题.“%d %f”,两个数据之间用空格隔开,“%d,%f”两个数据之间使用逗号隔开.等等,你检查一下,看看是否格式出错.除了输入还有输出.

石楼县18023216199: 在c语言中怎样输入汉字,望高手赐教!! -
须承同笑: #include <stdio.h> #include <io.h>void main (void) {FILE *input, *output;int letter; if ((input = fopen("dao.txt", "r")) == NULL)printf("Error opining source.cmns");else if ((output = fopen("c:\\new.txt", "w")) == NULL)printf("Error ...

石楼县18023216199: C语言的问题,高手来哦~~ 为什么输入不是数字的时候死循环输出Please input your selection agian:? -
须承同笑: 我不是高手,但是也许我知道楼主这个程序的问题怎么解决.在格式化输入函数scanf("%d",的下一...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网