编写c语言中,为甚么要多输入一个数程序才往下执行

作者&投稿:巫耐 (若有异议请与网页底部的电邮联系)
C语言中输入%8c是甚么意思~

如果是输入的话,表示字符输入后,必须再输入8个字符,系统才能接收你的输入如#includestdio.hintmain(){charc;scanf(%8c,printf(%c,c);return0;}输入12345678结果1固然,2345678可以是任意字符,如果后面不输入,系统会处于等待状态

*p 我的通俗理解: p可以理解成一个变量,(int char long都行,只是长度的区别)。这个p的值是一个数。 * 是: 将p的数当做 地址 来用 。 *p就是那个地址的名字了。对*p赋值就是对那个地址赋值了

请理解scanf函数的结束条件:
scanf函数__仅在每一个数据域均有数据,并按回车后__结束。

scanf("%10d%10f\n",&num[a],&x[a]);
这一句数据域有3个:%10d、%10f 和 \n!
这里\n是作为数据域,所以必须在遇到__第二个__\n时scanf才结束。
也就是说,你必须多输入一个回车才能使scanf结束。
至于输出为什么又是正确的,那是scanf并不负责清理输入缓冲区,
即不清理多余的输入,多余的输入可以作为下次的输入,包括\n!
故你可以得到正确输入。

正确方法如下:
scanf("%10d%10f",&num[a],&x[a]);
即,把 \n 去除。

如果还不明白,欢迎继续提问,不过建议google搜索_scanf函数_。

scanf("%10d%10f\n",&num[a],&x[a]); 此语句中的10为指定的输出字段的宽度。如果数据的位数小于10,则左端补空格。若大于10,则按照实际位数输出。你在这里要求输入的是9个数,而输出的宽度为10,所以得输入10个才能正常运行。你也可以把%10d改为%9d.

你定义的是数组啊,数组是从0开始计算的。你把《=改《就可以了的

有完整程序更好


C语言中,为什么有些程序最后输出时要加换行符,有的不用?
h> void main(){ int i,j;printf("\\1\\1\\n");for(i=1;i<11;i++){ for(j=1;j<=i;j++){ printf("%c%c",219,219);} printf("\\n");} getch();} 你看一样吗 , 都不在一个循环体里。意思是 内循环后面加 换行符,如果改成每次都换行出不来【阶梯】的效果了 ...

在c语言中0<x<=20为什么要写成0<x&&x<=20
1、因为规定C语言语法的人没有写编译器如何识别0<x<=20!2、而是使用了逻辑表达式(0<x)&&(x<=20)来表达不等式!3、规范的说你写0<x&&x<=20不加括号是错误的!希望可以帮到你,如果满意请采纳!

C语言中为什么写void main( )没有返回值,而int main( )就有返回值...
对于main函数的void和int基本没有差距 因为,main函数值主函数,程序第一个执行的函数,那么他的返回值是给操作系统的,void意思就是空,就是返回值的类型是空的,也就是无返回值,int是整形,那么返回值类型就是整形 你是刚学c的吧,对于子函数,你就;理解这个问题了 ...

c语言,为什么输出值为00000? 原函数很长,简单写一下如下:
int a=0;int *p = &a;(*p)++; \/\/*p=*p+1 也没问题啊printf("%d",*p);

c语言中二维数组a[i][j],为什么a=*a?
在C语言中,二者是相同的地址值。所以可以说a=*a.二维数组a定义为a[i][j]时,代表一组数据,有i行j列,共计i*j的元素。这组数据在内存中是连续存放的。而在C语言的使用中,a是二维数组的首地址。*a也就是a[0],是二维数组第一行的首地址。所以,二者是相同的地址值,即数据a[0][0]的...

为什么在c语言中我写的b[cnt],电脑总是显示后半个中括号错误
1。中括号不匹配 2。定义静态变量时cnt应该是常量 3。cnt是一个宏定义,内有“]”

C语言中%为什么不可以用来做除法?
C语言中,%只能用于整数运算的运算符,%是求余运算符,只能适用于整数与整数运算,如果用于非整数运算,程序会报错导致无法运行。A选项错误,是因为在C语言中,语句之间的分割要用英文状态下的分号去分割,即“;”,而不是冒号。D选项正确,是因为%是除法取余运算,适用于整数与整数运算。否则,不同...

...c语言中 这个语句的意思;为什么可以这样写,我一直没想明白! for(i...
以你的第一个for循环为例 for (i = t; i > 0; i--)执行一个for循环,一般会有一个循环变量,有循环终止与否的判断 1) i =t, 在进入for循环前,执行一次,对循环变量进行初始化,初始值为5 2)i>0,循环进行的条件,就是只要循环变量大于0,就一直执行 3)执行完循环体之后,就来这里...

在C语言中void main(void)是什么意思?为什么要这样写?
void main(void)第一个void代表返回值为空,即不需要返回值。第一个void表示参数为空,可以忽略掉这个void。

c语言中3.e-018为什么是合法的实型常量?
科学计数法呀,写全了就是3.0e-18,数表表达是3.0x10^-18,即三点零乘以十的负一十八次方。

阳信县18462878961: 编写c语言中,为甚么要多输入一个数程序才往下执行 -
牢显琥珀: 请理解scanf函数的结束条件: scanf函数__仅在每一个数据域均有数据,并按回车后__结束.scanf("%10d%10f\n",&num[a],&x[a]); 这一句数据域有3个:%10d、%10f 和 \n! 这里\n是作为数据域,所以必须在遇到__第二个__\n时scanf才结...

阳信县18462878961: 这个C语言程序为什么要输多一个数才能输出? -
牢显琥珀: 定义数组a[n]不规范, n是一个变量, 定义数组必须用常数.

阳信县18462878961: 为什么我想一个数组输入数,为什么必须要多输入一个数,循环才能出来 -
牢显琥珀: 你在输入的字符串%d前加入一个空格试试,看行不 如:int a; scanf(" %d", &a);

阳信县18462878961: C语言中输出一个%为什么要输入两个%? -
牢显琥珀: 因为一个%有特殊的用法,要是不输入2个,计算机不知道你哪句是语句的结构,哪句是字符

阳信县18462878961: 用vs2010编写c语言的时候输入数据过程中有点问题,如下程序 -
牢显琥珀: scanf("%d\n",&j);//输入格式的问题 scanf输出函数,运到空格或者换行跳格tab键都表示一个数据的输入结束 但是其输入格式当中 %d\n 就会把回车字符也读入到缓存,等到第二个回车或者是空格才表示一个数据输入结束 所以,出现如上情况.去掉回车字符就可以了 scanf("%d",&j);

阳信县18462878961: 用C语言写的一个程序:有一个已排好的数组,要求输入一个数后,按原来排序的规律将它插入数组中. -
牢显琥珀: 代码如下:#include<stdio.h> int main() { int a[20],i=0,n,x,k,j; printf("请输入一组顺序数(从小到大的顺序):"); while(~scanf("%d", &a[i])) { i++; if(getchar() == '\n') break; //在这判断,否则原先的第一个数字读不进去 } n=i; for(i=0;i<n;i++)...

阳信县18462878961: C语言中3个数相加的代码 -
牢显琥珀: 输入1个数的话 剩余两个数由于你没有初始化 那么值是随机的 一个确定的值加两个随机的值

阳信县18462878961: c语言 为什么循环的时候输入多了一次 -
牢显琥珀: 我寻思着 你那个 gold,sliver,bronze 那三个变量百没设初始值你是咋得到右边图片度的结果的?讲道理循环次数应该是没有问题的 当 i=0 时循环一次,i = 1时循环一次,i = 2 时循环一次 i = 3时已经不再小于回n了于是乎就跳出循环 所以for循环中的代码总共只会执行三次答 真是伤脑经 :)

阳信县18462878961: C语言为什么要写多个函数,有什么好处 -
牢显琥珀: 现在刚学练习写程序是练习语法,看不出优越性.主要体现在: 1、以后编写相对大型的代码或者课程设计作业,多次需要同一种功能(比如对数据的输出或者计算某种数据结构的长度等),那么你可以在需要的时候再main函数插入同样的一段代码也就是敲上同样的或者仅有几个参数差别的代码.这样,是好看了,但是代码长度太长了,显得比较冗杂又占用空间.所以呢,对这种多次使用的功能单独编写成一个函数,那些可能仅仅一个或者几个参数不一样的情况就作为形参实参了. 2、代码可读性好.没一个函数功能独立,都是实现自己的一种预定的功能.方便编程者阅读.

阳信县18462878961: C语言中,提示用户输入6个数并存入,但6个数输入有重复的,提示用户重新输入,代码应该怎么写呀?急急 -
牢显琥珀: 刚开始学c的人一般都会遇到这个问题 一般就两种办法 第一是设定一个足够大的数组作为后备 譬如假设用户一般只会输入几十个的数 那实现设定int b[100]; 由用户设定的a作为运行时的检测边界 当然这种方法需要验证用户输入的值得有效性 大于100 则提示输入的值过大 合法的数值在100以内 第二种办法就是使用上面的兄弟说的利用动态申请的方式 不过这种使用方式 需要考虑合适的时候进行内存回收 开始学c的建议不要搞这么复杂 一步步来 先用固定的方式使程序正确运行后,再尝试使用更加灵活的方式,这样容易看到程序结果 提高自己的信心和兴趣 再在基础的框架上尝试修改.

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