设a=12,b=24,c=36,对于“scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);”输...
发布网友
发布时间:2024-06-01 14:19
我来回答
共2个回答
热心网友
时间:2024-07-24 00:45
使用scanf函数还必须注意以下几点:
1) scanf函数中没有精度控制,如:scanf("%5.2f",&a);是非法的。不能企图用此语句输入小数为2位的实数。
2) scanf中要求给出变量地址,如给出变量名则会出错。如 scanf("%d",a);是非法的,应改为scnaf("%d",&a);才是合法的。
3) 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。
4) 在输入字符数据时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。
例如:
scanf("%c%c%c",&a,&b,&c);
输入为:
d e f
则把'd'赋予a, ' ' 赋予b,'e'赋予c。
只有当输入为:
def
时,才能把'd'赋于a,'e'赋予b,'f'赋予c。
如果在格式控制中加入空格作为间隔,
如:
scanf ("%c %c %c",&a,&b,&c);
则输入时各数据之间可加空格。
main(){
char a,b;
printf("input character a,b\n");
scanf("%c%c",&a,&b);
printf("%c%c\n",a,b);
}
由于scanf函数"%c%c"中没有空格,输入M N,结果输出只有M。而输入改为MN时则可输出MN两字符。
main(){
char a,b;
printf("input character a,b\n");
scanf("%c %c",&a,&b);
printf("\n%c%c\n",a,b);
}
本例表示scanf格式控制串"%c %c"之间有空格时,输入的数据之间可以有空格间隔。
5) 如果格式控制串中有非格式字符则输入时也要输入该非格式字符。
例如:
scanf("%d,%d,%d",&a,&b,&c);
其中用非格式符“ , ”作间隔符,故输入时应为:
5,6,7
又如:
scanf("a=%d,b=%d,c=%d",&a,&b,&c);
则输入应为:
a=5,b=6,c=7
6) 如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。
main(){
int a;
printf("input a number\n");
scanf("%d",&a);
printf("%ld",a);
}
由于输入数据类型为整型,而输出语句的格式串中说明为长整型,因此输出结果和输入数据不符。
解释:参照第5条,你的输入格式为: a=12,b=24,c=36
热心网友
时间:2024-07-24 00:47
a=12,b=24,c=36 一定要按照a=%d,b=%d,c=%d 这个格式
设a=12,b=24,c=36,对于“scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);”输...
scanf("%c%c",&a,&b);printf("%c%c\n",a,b);} 由于scanf函数"%c%c"中没有空格,输入M N,结果输出只有M。而输入改为MN时则可输出MN两字符。main(){ char a,b;printf("input character a,b\n");scanf("%c %c",&a,&b);printf("\n%c%c\n",a,b);} 本例表示scanf格...
在c语言中,scanf("a=%d,b=%d,c=%d",&a,&b,&c,)这是什么意思啊!
scanf("a=%d, b=%d, c=%d", &a, &b, &c);的意思就是说你要根据下面的格式输入:a=1, b=2, c=3其中每个%d依次对应后面的参数a,b,c;比如你按上面输入后,在程序里面就对a,b,c会进行赋值为a=1, b=2, c=3
c语言中scanf(“%2d%*2d%2d”,&a,&b);若要输入123456789 则变量a和
a=12,b=56;scanf可以指定输入的宽度,比如scanf(“%2d",&a);就是把输入数据的前两位赋值给a。scanf可以用“*”跳过指定的宽度,比如scanf(“%2d%*2d%2d”,&a,&b);就是把输入数据的前两位12赋值给a,然后跳过34两位,最后把下面两位56赋给b。scanf函数遇到空格和非法输入时结束,并且可...
c语言中,scanf("a=%db=%d",&a,&b);中的a和b在键盘中怎么输入数值?
能不能把scanf里的a=之类的东西去掉?只留下%d之类的格式?别加空格,也不要逗号。scanf是格式化的读取,所以你加的这些零碎,都算在格式化里了。想要输入必须按照你规定的格式输入,否则就不认识。
...a,b,c; scanf("a=%d,b=%d,c=%d", &a, &b, &c); 为使变量a的值为1...
1、scanf()中的变量必须使用地址。 所以会 &a, &b, &c (&a是传递变量a的地址到scanf函数)2、%d 中scanf函数的输入格式 意思是要求输入一个整数,并将读入的数据解释成一个整数。3、scanf函数中“”中的数据,除去格式(带%的部分)外,是输入者必须输入的部分,这部分程序不解释成数据,...
C语言scanf(“a=%d,b=%d”,&a,&b);输入中a=%d的含义
d是格式符,或者叫占位符,它表示你输入(scanf是输入,printf是输出)的值以int型的格式存入后面的变量中,第一个%d对应变量a,第二个%d对应变量b,注意,用scanf输入内容时,要严格按照双引号中的格式输入,比如输入:a=3,b=5 //此时,a的值为3,b的值为5 ...
scanf("%d%d",&a,&b)与scanf("%d,%d",&a,&b)的区别!!
1、scanf("%d%d",&a,&b)输入的两个数据用空格,TAB或者回车区分开。2、scanf("%d,%d",&a,&b) 输入的两个数据用逗号区分开。3、scanf函数功能是从外设读取数据并赋值给变量,%d代表接收一个整形数,&a代表变量a的内存地址,也就是说把读取的第一个整形数赋值给变量a。4、scanf函数称为格式...
int a=12,b=34 ,c=56,*p=&b printf("%d",*p++) printf("%d",*p...
输出结果为:34 35 34,原因如下:int a=12,b=34 ,c=56,*p=&b;printf("%d",*p++); // 输出*p=b=34,输出完后执行*p++=34+1=35=b printf("%d",*p); // 输出*p=b=35 p=&b;printf("%d",*--p); // 先计算*--p=b-1=35-1=34,输出*p=b ...
执行scanf (“%d%c%f”,&a,&b,&c) 语句,若输入1234a12f56 则变量a,b...
做这道题,首先要明白scanf的实现机理,对于整数的话,没有指定分隔符的话,是以空格来分的,float也是以空格区分的,另外遇到数字不能识别的,也会将输入的字符分割开的,但这里有字符,当读入a时,a就赋给c了 a = 124 c = a;f = 12.000000 ...
已知变量a=10,b=20,c=30,编写程序,将变量c的值赋值a,将b的值赋予c,的...
include <stdio.h>int main(){ int a = 10, b = 20, c = 30, t; printf("before: a = %d, b = %d, c = %d\n", a, b, c); t = a; a = c; c = b; b = t; printf("after : a = %d, b = %d, c = %d\n", a, b, c); return 0;} ...