c语言for循环用scanf输入字符是怎样运行的

2021-01-02 20:43:52 字数 4668 阅读 3469

1楼:匿名用户

问题有点模糊哦,没循环一次就会要求输入字符,但不可以有空格键!但用gets();可以避免

问题不是我猜的这样继续问吧!哈哈

2楼:匿名用户

楼主的**有三个问题,

第一是for(i=1;i<3;i++);

这句不应该由分号结尾,这样的话后面的语句不会是for的一部分。

第二:case '0':printf("another\n");后面应有break。

原因是,如果k为0,这句执行之后,case '1'中的语句同样会执行。

第三:for(i=1;i<3;i++)只会循环两次,因此不会出现楼主所说的三个结果

3楼:匿名用户

void main()

这样应该可以的。不过你要输入字符串的话,直接用scanf("%s",a);就可以了。

c语言for循环里的scanf怎么用?

4楼:乐跑小子

int i;

int a[10] = ;

for(i = 0; i < 10, i++)for(i = 0; i < 10; i++)这是输入

数字的,要输入字母的话,可专以把a[10]定义为char型属

5楼:匿名用户

constintmax=30;//这样不好吧#definmax30

charname[arraysize][max];

printf("enternumberofmarks:");

scanf("%d",&arraysize);

for(i=0;i

#definemax30

intmain(void)

{inti,tmp;

charmark[max][max];

charname[max][max];

printf("enternumberofmarks:");

scanf("%d",&tmp);

for(i=0;i

6楼:手机用户

因为你非copy常有可能每输bai入一个字符就按了一次du回车,而回车其实也是一个字zhi符。

在 scanf("%c",char[i]);语句后加上一dao句getchar();就可以啦!

如果前面有输入数据的情况。把getchar();放在 scanf("%c",char[i]);之前。

7楼:东郭远郦秋

肯定是因为game()函数里有scanf语句,并且scanf之后没有处理scanf留下的换行符。

scanf从屏幕是读取数据时,往往

专不会自动读掉

属行尾的换行符(你输入数据后,肯定会按一个回车的对吧),所以在game函数里的最后一个scanf结束后,输入缓冲区里还一个换行符在里面,这个时候main函数里的scanf函数读到的字符就是那个换行符

解决方法:

在game函数的最后一个scanf函数后面,加上一个gets语句,用来读掉最后一个换行符即可,当然如果你的输出里敲了多个回车,就要执行多句,不懂可以贴上你的game()函数和你上面的输入,我再告诉你

c语言中用scanf和循环语句是怎么给数组一一赋值的,希望说得详细点

8楼:匿名用户

#include int main(void)for (i=0;i<10;i++)

return 0;}

9楼:匿名用户

int i,a[100];scanf("%d",&n);for(i=0;i

10楼:匿名用户

同样的,用for一个个赋值for(i=0;i

11楼:匿名用户

定义一个变量,从下标0开始,一直到n-1个为止。这就是输入和输出的循环

c语言——循环里面的第二个scanf不会执行怎么办?

12楼:林大师

printf("请问还需要继续输入

成绩吗?继续请输入'y',退出请输入除'y'以外的任何字符专:);

getchar( );

scanf("%c",&a);

因为上面输入分数时打属了个回车 用个getchar()吸收回车;不然回车会被scanf用了

望采纳。

c语言中for循环scanf输入的为题/

13楼:山_中_雾_岚

因为你非常有bai可能每输入一个字du符就zhi按了一次回车,而回车其实dao也是一个内

字符。在 scanf("%c",char[i]);语句容后加上一句getchar();就可以啦!

如果前面有输入数据的情况。把getchar();放在 scanf("%c",char[i]);之前。

14楼:匿名用户

经过测试???

怎么测试的?

测试都不用先通过编译的么?!

scanf("%c",char[i]);

char是关键字啊,怎么通过编译的?!

15楼:匿名用户

因为你非常有可能每输入一个字符就按了一次回车,而回车其实也是一个字符。

16楼:匿名用户

关键字做变量肯定是不能通过编译滴~

回车也会作为一个字符的!

17楼:冷衣雪婵

你输入的如果是汉字的话。。。就只能有三次……

c语言关于for循环中使用scanf连续输入的问题or not,求大神看看**。

18楼:听不清啊

#include

int main()

for(i=0;i

return 0;}

19楼:匿名用户

首先,c语言不能直接定义可变大小的数组。也就是int d[i];这种写法是不可以的。变通的方法是,估计一个可能的最大值作为数组的大小,实际使用中,用多少算多少。

所以假设数组不超过10000个元素,那么就可以定义为int d[10000];

其次就是输入中,不要用\0,一般来说,这个输入不了,程序执行会出错。改成scanf("%d%d",&a,&b); 即可。

进行了以上修改之后,**就没其他问题了

c语言怎么用scanf输入字符串。

20楼:守望相依

你的意bai思是输入多余的字符吧?du

1、因为zhi你用scanf输入dao的字符都是输入到缓冲区中的,例如

内你定义了一个只接容受一个字符的变量ch,但却输入了多余的字符,这种情况会给编译器造成困扰,因为他并不完全智能,通常采用这种方法释放掉缓冲区内多余的字符输入;例如:

2、char ch;

scanf("%c", &ch);//假如你不小心输入了多个字符//解决方法如下

while (‘\n’ != getchar())//这里的原理一不断的用getchar读取缓冲区内的字符,并将其废弃掉,直到遇到你输入的回车符(当然也可以是别的输入结束符);

21楼:水里风

字符串用数组代替,然后用循环语句一个一个字母输进去= =

c语言的for循环和if还有scanf用法.

22楼:

#include

void main()

printf("a=%d,b=%.3f",a,b);}

23楼:匿名用户

#include "stdio.h"

main()

if(c>0 && (int)c != c)}while(c!=0);

for(t=0;t

printf("小数有%f\n",b[t]);

for(t=0;t

printf("整数有%d\n",a[t]);

}由于是若干个数据,所以存储我用数组,比较简单看不懂再问我吧,主要是判断整数和小数要用的条件

24楼:匿名用户

c好像不行,c++应该没问题

你也可以这么办

输入一个float形式的,想要用整数就int取出整数就可以了float b;

int a;

scanf("%f",&b);

a=(int)b ;

25楼:匿名用户

那需要间接转换,就是输入的数据取出来后给了一个临时变量,然后对临时变量进行判断,来决定给a还是给b

c语言for循环输入、输出

26楼:匿名用户

将scanf ("%d\n",&j[k]);改成

scanf ("%d",&j[k]);

27楼:沂**行侠

你把for里面的++k改成k++再看看

怎样用c语言输出前驱字符和后继字符

1楼 听不清啊 char c scanf c c printf c c c 1 c 1 2楼 查素滕河 如楼上所说 常见于连续存储的数据结构 数组 链表 栈 队列 以字符数组为例 abcde 其中b的前驱是a 后继是c c语言中,前驱字符和后继字符是什么意思 3楼 匿名用户 如楼上所说 常见于连续存...

用c语言编程输入字符若是小写字母转换为

1楼 木澂 如下 include int main 在devc 环境下运行效果如下 2楼 郝在益 如果是小写,则将这个字符减去32,再输出。反之,加上32就是了。 include main 满意请采纳! 3楼 匿名用户 include void main else if ch 97 ch 122 p...

c语言用vc编程输入字符如果是小写字母就

1楼 匿名用户 漏掉了92 96部分 include void main 2楼 匿名用户 在main中最前面加个 char c 其他基本上没问题。 3楼 匿名用户 没有定义字符变量c,要先声明,然后才能用 4楼 高桥浩子 考虑的不是很周全。 c库中有一个转化大小写的函数,包含在《string h》中...