Ⅰ c语言:为什么会没有字符的输入,请指出哪里错了,应该怎么改。
# include<stdio.h>
void main()
{
float a,b,sum;
char d;
printf("请输入两个数字\n");
scanf("%f",&a);
scanf("%f",&b);
while(getchar()!='\n')continue;//加上这句就可以了
printf("选择算法 '+','-','*','/'\n");
scanf("%c",&d);//这里,上面scanf输入接收后的回车符被这个scanf接收了,把上面输入后的回车符去掉就可以了
switch(d)
{
case '+':sum=a+b;break;
case '-':sum=a-b;break;
case '*':sum=a*b;break;
case '/':sum=a/b;break;
}
printf("%.0f%c%.0f=%.0f\n",a,d,b,sum);
}
Ⅱ C语言中为什么字符不能用“”括起来
""是字符串字面值
是CONST CHAR*类型 不能当CHAR用
用了会类型不匹配
还有就是“”最后会自动加上一个\0
Ⅲ c语言定义变量时变量名不能使用的字符
C语言规定标示符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。除开这些字符,其他的字符在c语言定义变量时都不能使用。
例如:
M.D.John
&123
#sfsjf
Ling
li
C++
Zhang-lin
4G22
Ⅳ c语言中为什么不能用关系运算符比较两个字符串
因为关系运算符只能比较两个数的大小关系
而字符串实际上是以字符串数组的形式存储,它是数组,而数组是不能直接用关系运算符比较大小的
Ⅳ c语言中,为什么不能对字符指针变量指向的字符串再赋值
因为C语言中,凡是以""括住的形式直接出现,而且你又没有为其分配内存空间的字符串都是常量字符串,是不能修改其值的。
这样:
char a[6]="hello";
a[2]='c';
就可以了。
这里你为hello分配了一个长度为6的字符数组空间来存放。
(5)为什么c语言不能用字符扩展阅读:
给字符数组赋值的方法
1、定义的时候直接用字符串赋值
char a[10]="hello";
注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!
2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};
3、利用strcpy
char a[10];
strcpy(a, "hello");
Ⅵ C语言中哪一个不能用作字符常量,为什么
"1"
因为它是一个字符串……
Ⅶ 为什么在C语言中,字符型不能用SCANF输入,而是用GETCHAR
楼主你好,关于你问的这个问题在我初学C语言的时候也遇到过,不仅是一个人遇到,这是很多初学者都会遇到的问题~,当然,我不是说楼主大哥你是初学者~~~呵呵~~~~~~~这个问题曾经麻痹了很多人,开始我也是不知道是什么原因,直到一次偶然的机会我才知道问题的所在~`
出错原因如下:
当你输入数据后 回车,数据才被函数“scanf()”读入,问题
就出在这个“回车”上;在C里面 回车 键是当两个字符来用的:即
“回车”和“换行”;这样一来,问题就来了;当你紧接着在
“scanf()”后面再来一句“scanf()”读入一个字符的时候,
此时在第二个“scanf()”里面读入的不是你输入的那个字符~~~ 而是那个使人忽略的 “回车”字符;
当然,要是你第二句“scanf()”不是输入字符而是输入数据的 话, 那就没有此问题出现。
解决的办法是在第二个“scanf()”语句前加一句getchar();
此处的getchar();就是用来吞噬掉前面的“回车”。
其实C语言不仅仅只有这个使人麻痹的问题,还有许多 是你自认为是对的语句,在你运行的时候会出现一些莫名其妙的错误,使人防不甚防。这又是C语言的一个不足之处。
Ⅷ C语言!帮我看看为什么老是不能执行字符的输入。
第二个scanf("%c",&s);把第一个scanf时输入的回车读入了,所以s是回车,然后按照你写的判断过程,非+、非-、非/ 则认为是乘,所以输出的结果是 积
你可以把s的ASSIC码输出,会发现等于10也就是回车
解决办法有多种,最简单的是
把scanf("%c",&s); 改为 scanf(" %c",&s); // 百分号前加个 空格
Ⅸ 1 在计算机二级c语言中 为什么不能用字符串常量对字符数组名进行整体赋值
语法规定的,字符串常量对编译器来说只是个地址而已,字符串常量存储在代码段,不可被修改,你可以把字符串给一个字符串指针赋值,但是编译器是不会帮你帮字符串的数据放到数组的空间内,这些要自己完成,或者调用memcpy内存拷贝将整块的字符串复制过去
Ⅹ C语言为什么不能直接可以定义多个字符串,就像int可以定义一定长度的数字,为什么啊
没有为什么。C语言语法规定就是只有字符变量,没有字符串这样的变量。所以只能用数组,指针和宏定义。你要不服气可以和发明C语言和制定C标准的人肛去。