有关C语言的scanf输入问题

作者&投稿:冀华 (若有异议请与网页底部的电邮联系)
关于c语言scanf输入语句问题。~

这个是由scanf的第一个参数决定的,前两种情况相同。
scanf("%d,%d",&a,&b);输入一个数字,再输入“,”,再输入一个数字,两个数值之间(“,”前后都行)有任意个空格或没有空格
scanf("%d%d",&a,&b);可以
数字
空格(大于等于1个)数字,也可以
数字
回车
数字
scanf("%d
%d",&a,&b);可以
数字
空格(大于等于1个)数字,也可以
数字
回车
数字
scanf("%d
%d",&a,&b);(表示之间有n个空格)可以
数字
空格(大于等于n个)数字,也可以
数字
回车
数字

楼主您好:

很高兴为您解答,这个是不能那个随意组合输入的,要看你的scanf的语句了,如果%d在前的话,后面肯定是数字在前的。

希望我的回答对你有所帮助。

假定 scanf("%f%e",&a,&y); 应当是 scanf("%f%e",&x,&y);
---
用的都是 scanf(), 可以看成:
scanf("a=%d b=%d %f %e %c %c",&a,&b,&x,&y,&c1,&c2);
简单地 用 1行 文字拍入:
a=3 b=7 8.5 71.82e0 A a

输出:
printf("a=%d b=%d %f %e %c %c",a,b,x,y,c1,c2);

#include <stdio.h> 
int main () 
{
int a,b;
float x,y;
char c1,c2; 
scanf("%d%d",&a,&b);
scanf("%f%e",&x,&y);
getchar();
scanf("%c",&c1); 
getchar();
scanf("%c",&c2);
printf("a=%d  b=%d  x=%f  y=%e  c1=%c  c2=%c 
",a,b,x,y,c1,c2);
return 0;
}



#include <stdio.h> 

int main () 

{

int a,b;

float x,y;

char c1,c2; 

scanf("%d%d",&a,&b);

scanf("%f%e",&x,&y);

scanf("%c%c",&c1,&c2); 

printf("a=%d,b=%d,x=%f,y=%e,c1=%c,c2=%c",a,b,x,y,c1,c2);

 return 0;}


对于初学者而言,输入和输出要分开。



scanf("a=%db=%d",&a,&b);

输入格式是 a=3空格b=7空格x=8.5

scanf("%f%e",&a,&y);

输入格式是 y=71.82空格c

canf("%c%c",&c1,&c2);

输入格式是 A空格a
&是地址运算符,%d是按照十进制输入,%f按照浮点型输入,%c字符型输入,%e指数型输入。

例如:scanf("%d%d%d",&a,&b,&c);
合法格式:3 4 5 数字间一个或多个空格
scanf("%d,%d",&a,&b);
合法格式:3,4 数字间逗号
scanf("%d:%d",&a,&b);
合法格式:3:4 数字间分号
scanf("a=%d,b=%d",&a,&b);
合法格式:a=3,b=4
明白了吧

C语言中规定一个程序,可以没有输入但是必需有输出,否则这样一个程序就没有了意义。。其实不论哪个程序,没有输出的程序都是没有意义的。。。


C语言中,什么时候该用float、int、printf、scanf
按英文字面意思来理解。float:浮点,就是对应我们在数学中的小数;int:integer,整数。printf = print(打印)+f(function 函数),就是打印函数,输出到屏幕上,输出函数;scanf= scan(扫描)+f(function 函数),扫描函数,就是外面的东东扫描到电脑里面,作为输入,就是输入函数。

c语言 {int a【10】,*p,*s; for(p=a;p—a<10;p++) scantf(
int a[10] , *p , *s;\/*定义 数据a[10] , 算计给数组a分配10个连续的地址空间;定义指针 *P 和 *s;*\/ for(p=a;p—a<10;p++) scantf(“%d”,p);\/*将数组的头地址分配给指针p , a-p 为数组下标号即下标小于10时执行scantf(“%d”,p)给数组手动符值 ,执行完该语句后p指针...

计算机c语言中 double x[10],*p=x; scanf("%lf",p+6); scan
p+6相当于&x[6]p=x这里,是将数组首地址赋值给p p+6就是第6+1个元素的地址,所以,不用加&了

c语言编程:已知三角形的三边长,求其面积。
include<stdio.h> include<math.h> voidmain(){ floata,b,c,s,p;printf("请输入三角形的三边长:");scanf("%f,%f,%f",&a,&b,&c);p=(a+b+c)\/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf("三角形面积=%6.2f\\n",s);} ...

C语言问题?
include<stdio.h>main(){int n,i,j,k,m;while(1){scanf("%d",&n);m=0;for(i=1;i<=100;i++)\/\/5分 for(j=1;j<=100;j++)\/\/2分 for(k=1;k<=100;k++)\/\/1分 if((i*5+j*2+k==150)&&(k+j+i<100)){ printf("%d\\t5分%d枚,2分%d枚,1分%d枚...

用C语言设计一个学生信息查询系统程序
1、首先创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。2、编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。3、在源文件中创建main源文件和Stu源文件。再main文件中写入int mian()代码。4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。5、在Stu源文件的...

C语言中常见的英语单词缩写
void *MemScan(char *szString);而且,下划线是非法的。例如,下面的函数名表示是无效的匈牙利表示法:int Get_Pixel(int ix,int iy);类型和常量的命名:所有的类型和常量都是大写字母,但名字中可以允许有下划线。如:const LONG NUM_SECTORS=100; \/\/ a C++ style constant define MAX_CELLS 64;...

如何用c语言实现文本菜单界面
\/*** 函数名:Menu* 功能:绘制主菜单界面,并根据输入转跳到其它功能***\/int Menu(){char cScan;\/\/cScan用于记录键盘的输入\/* ┏━┓┃┛┗ *\/printf("\\n\\n");printf("\\t┏━━━┓\\n");printf("\\t┃ 欢迎使用员工管理系统BetaV1.0 ┃\\n");printf("\\t┃ ...

这个C语言的枚举为什么开头只有一个“enum”而没有枚举名?这样的是什...
这样定义的enum,意思是仅给出了一组常量的定义!~~~然后在程序中就可以直接使用这些常量符号了,可以赋值、比较判定、用于返回值等等。。。

请问C语言中scanf函数里的%5c 的意思是不是用来输出5个字符?
确实是5个字符,但这个字符是空白符,通常这是作用是用来对齐的,%5c,那么前面4个为空格,第5个为你转义的字符,%-5c则相反,第一个为你转义的字符,后4个为空白符。这种同样适用%5d,%-5d等,例如%5d,输出的数为123,则前面2个为空格加123;若输出的数为12345,则就输出12345,保持原样 ...

墨脱县15633522031: 有关C语言的scanf输入问题 -
烛实加替: 假定 scanf("%f%e",&a,&y); 应当是 scanf("%f%e",&x,&y);--- 用的都是 scanf(), 可以看成:scanf("a=%d b=%d %f %e %c %c",&a,&b,&x,&y,&c1,&c2); 简单地 用 1行 文字拍入:a=3 b=7 8.5 71.82e0 A a 输出:printf("a=%d b=%d %f %e %c %c",a,b,x,y,c1,c2);

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

墨脱县15633522031: 简单C语言scanf输入问题 -
烛实加替: (1)我初学c语言时也碰到了跟你一样的问题, 那是因为scanf函数的一个天生的毛病, 你在调用scanf()时,输入一个数字,并按下回车, 你的本意是只想让scanf接受一个数字, 但同时scanf()把那个回车也送入了缓冲区中, 你可以这样改...

墨脱县15633522031: C语言 格式输入scanf函数 中的问题 -
烛实加替: scanf("%d%d%d" -- %d 表示按整型 输入一个数,%d%d%d 表示按整型 输入三个数. scanf("%d%d%d",&a,&b,&c); 后面的 三个参数 &a,&b,&c 表示把依次输入的三个数,按次序 存到 a的地址里,b的地址里,c的地址里.3<回车>4<回车>5<回车> -- 输入的第一个数是 3,第二个数是 4,第三个数是 5.输入数据 的分隔符 是 <回车> 键第一个数是 3,存到 a 第二个数是 4,存到 b 第三个数是 5, 存到 c

墨脱县15633522031: c语言scanf循环输入问题 -
烛实加替: 用scanf函数输入数值时,可以指定列宽如scanf("%3f",&a);表示截取3个数字字符赋给a,如输入2345,它只将234赋给a,输出结果为234.000000.不可以指定输入精度,如scanf("%3.2f",&a)格式不合法的.详情请查阅:C语言程序设计(第2版) 谭浩强 著,第85页.

墨脱县15633522031: c语言,scanf 输入字符串问题 -
烛实加替: scanf("%s",str2)的实际操作是将str2作为一个指针,按照字符串(%s)来读取和识别标准输入的内容,并将读取到的内容存储到指针str2所指地址中. 你的str1被赋值为空(null),即为0,所有的系统均不会允许读写地址0上的内容,所以报...

墨脱县15633522031: C语言关于Scanf 读入字符串的问题! -
烛实加替: 没什么的,就三个分支啊,第一个分支是输入为字符1-9的时候,合理情况,第二种分支是输入为Q时,第三种分支直接else就可以了,除了之前两种分支输入的情况以外,其他一律提示错误并重新输入

墨脱县15633522031: 求问一下关于c语言scanf函数的一些问题,就是说输入数据时,到底应该用什么分割,我们老师说用空格 -
烛实加替: scanf的输入方式完全要看代码的书写方式了.先来讲一下scanf的输入原理吧: 1、scanf输入流的概念,当执行到scanf函数时,会检查输入流,如果为空,则要求用户输入.如果不为空,则根据scanf的格式化参数从输入流中读取 2、%d 用来...

墨脱县15633522031: 关于c语言scanf输入语句问题. -
烛实加替: 这个是由scanf的第一个参数决定的,前两种情况相同.scanf("%d,%d",&a,&b);输入一个数字,再输入“,”,再输入一个数字,两个数值之间(“,”前后都行)有任意个空格或没有空格 scanf("%d%d",&a,&b);可以 数字 空格(大于等于1个)数字,也可以 数字 回车 数字 scanf("%d %d",&a,&b);可以 数字 空格(大于等于1个)数字,也可以 数字 回车 数字 scanf("%d %d",&a,&b);(表示之间有n个空格)可以 数字 空格(大于等于n个)数字,也可以 数字 回车 数字

墨脱县15633522031: 一个关于C语言的scanf问题 -
烛实加替: 这是关系到键盘缓冲区的问题. 你输入第一个字符后.按空格键的时候.电脑以为 是你输入了第二个字符 所以要清空 ;在第5行和6行中间加一句 fflush(stdin); 就行了!具体是;#include void main() { char a; char b; scanf("%c",&a); fflush(stdin); scanf("%c",&b); }

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