×

printf和scanf同时使用

printf和scanf同时使用(scanf函数和printf函数的功能以及使用时要注意什么问题)

admin admin 发表于2023-10-25 07:36:40 浏览38 评论0

抢沙发发表评论

本文目录

scanf函数和printf函数的功能以及使用时要注意什么问题

scanf函数是可以进行命令行输入,注意赋值变量时不要漏了 & printf是命令行输出函数,注意匹配输出的类型,比如%d对应整形数输出...望采纳,感谢

C的scanf和printf连用

4.1 格式输入与输出 4.1.1 printf函数(格式输出函数) printf函数称为格式输出函数,其关键字最末一个字母f即为“格式”(format)之意。其功能是按用户指定的格式,把指定的数据显示到显示器屏幕上。在前面的例题中我们已多次使用过这个函数。1. printf函数调用的一般形式printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含stdio.h文件。printf函数调用的一般形式为: printf(“格式控制字符串”,输出表列)其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:“%d”表示按十进制整型输出;“%ld”表示按十进制长整型输出;“%c”表示按字符型输出等。非格式字符串在输出时原样照印,在显示中起提示作用。输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。【例4.3】main(){ int a=88,b=89; printf(“%d %d\n“,a,b); printf(“%d,%d\n“,a,b); printf(“%c,%c\n“,a,b); printf(“a=%d,b=%d“,a,b);}本例中四次输出了a,b的值,但由于格式控制串不同,输出的结果也不相同。第四行的输出语句格式控制串中,两格式串%d 之间加了一个空格(非格式字符),所以输出的a,b值之间有一个空格。第五行的printf语句格式控制串中加入的是非格式字符逗号,因此输出的a,b值之间加了一个逗号。第六行的格式串要求按字符型输出 a,b值。第七行中为了提示输出结果又增加了非格式字符串。2. 格式字符串在Turbo C中格式字符串的一般形式为: 类型其中有方括号的项为任选项。各项的意义如下:1) 类型:表示输入数据的类型,其格式符和意义如下表所示。格式字符意义d输入十进制整数o输入八进制整数x输入十六进制整数u输入无符号十进制整数f或e输入实型数(用小数形式或指数形式)c输入单个字符s输入字符串2) “*”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。 如: scanf(“%d %*d %d“,&a,&b);当输入为:1 2 3时,把1赋予a,2被跳过,3赋予b。3) 宽度:用十进制整数指定输入的宽度(即字符数)。例如: scanf(“%5d“,&a);输入:12345678只把12345赋予变量a,其余部分被截去。又如: scanf(“%4d%4d“,&a,&b);输入:12345678将把1234赋予a,而把5678赋予b。4) 长度:长度格式符为l和h,l表示输入长整型数据(如%ld) 和双精度浮点数(如%lf)。h表示输入短整型数据。使用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);则输入时各数据之间可加空格。【例4.8】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两字符。【例4.9】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=76) 如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。【例4.10】main(){ int a; printf(“input a number\n“); scanf(“%d“,&a); printf(“%ld“,a);} 由于输入数据类型为整型,而输出语句的格式串中说明为长整型,因此输出结果和输入数据不符。如改动程序如下:【例4.11】main(){ long a; printf(“input a long integer\n“); scanf(“%ld“,&a); printf(“%ld“,a);}运行结果为: input a long integer 12345678901234567890当输入数据改为长整型后,输入输出数据相等。【例4.12】main(){ char a,b,c; printf(“input character a,b,c\n“); scanf(“%c %c %c“,&a,&b,&c); printf(“%d,%d,%d\n%c,%c,%c\n“,a,b,c,a-32,b-32,c-32); } 输入三个小写字母,输出其ASCII码和对应的大写字母。【例4.13】main(){ int a; long b; float f; double d; char c;printf(“\nint:%d\nlong:%d\nfloat:%d\ndouble:%d\nchar:%d\n“,sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c));} 输出各种数据类型的字节长度。

printf和scanf的用法

Printf和Scan函数的使用方法一 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出 信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf(“《格式化字符串》“, 《参量表》); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原 样输出; 另一部分是格式化规定字符, 以“%“开始, 后跟一个或几个规定字符, 用来确定输出内容格式。 参量表是需要输出的一系列参数, 其个数必须与格式化字符串所说明的输出 参数个数一样多, 各参数之间用“,“分开, 且顺序一一对应, 否则将会出现意想 不到的错误。 格式化字符串的格式是: %“,&a);输入:12345678只把12345赋予变量a,其余部分被截去。又如:scanf(“MM“,&a,&b);输入:12345678将把1234赋予a,而把5678赋予b。例:main(){int a,b;scanf(“MM“,&a,&b);printf(“a=%d,b=%d“,a,b);} 输入 12345 67890运行结果 a=1234,b=54) 长度:长度格式符为l和h,l表示输入长整型数据(如%ld) 和双精度浮点数(如%lf)。h表示输入短整型数据。使用scanf函数还必须注意以下几点:1)scanf函数中没有精度控制,如:scanf(“%5.2f“,&a);是非法的。不能企图用此语句输入小数为2位的实数。2)在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,TAB或回车作间隔。C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。

C语言怎么用printf和scanf输入两个整数计算加减乘除余的结果

摘要你的那一个可以这样修改:

#include

int main()

{

int a ,b ,c;

float d;

printf(“请输入第一个整数:“);

scanf(“%d“ ,&a);

printf(“请输入第二个整数:“);

scanf(“%d“ ,&b);

c = a + b;

printf(“%d+%d=%d\n“,a,b,c);

c = a - b;

printf(“%d-%d=%d\n“,a,b,c);

c = a * b;

printf(“%d×%d=%d\n“,a,b,c);

if(b){

d = a / b;

printf(“%d÷%d=%.2f\n“,d);

c = a % b;

printf(“%d mod %d=%d\n“,c);

}

return 0;

}

咨询记录 · 回答于2021-10-15

C语言怎么用printf和scanf输入两个整数计算加减乘除余的结果

稍等一会,我写完程序发给你

好的

写好了吗?

main(){

int a,b,he,ch,ji,sh,yu;

scanf

}正在写

#include

int main()

{

int a ,b ,c;

printf(“请输入第一个整数:“);

scanf(“%d“ ,&a);

printf(“请输入第二个整数:“);

scanf(“%d“ ,&b);

c = a + b;

printf(“a + b = %d\n“,c);

c = a - b;

printf(“a - b = %d\n“,c);

c = a * b;

printf(“a * b = %d\n“,c);

c = a / b;

printf(“a / b = %d\n“,c);

c = a % b;

printf(“a %% b = %d\n“,c);

return 0;

}你看一下这个是哪里出错了可以吗

main(){

int a,b,he,ch,ji,sh,yu;

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

he=a+b;

ch=a-b;

ji=a*b;

if(b){

}

}

你的程序中:printf(“a %% b = %d\n“,c);多了一个%,应该是:

printf(“a %% b = %d\n“,c);

你的写好了了吗?

你说的错误是指运行结果不正确吗

我的稍等

main(){

int a,b,he,ch,ji,yu;

float sh;

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

he=a+b;

ch=a-b;

ji=a*b;

if(b){

sh=a*10/b;

yu=a%b;

}

else{

sh=999;

yu=-1;

}

printf(“%d与%d的和差积商余分别是:%d,%d,%d,%.2f,%d\n“,a,b,he,ch,ji,sh,yu);

}

说明,当除数为0时,商是999,余是-1。

main(){

int a,b,he,ch,ji,yu;

float sh;

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

he=a+b;

ch=a-b;

ji=a*b;

if(b){

sh=a*1.0/b;

yu=a%b;

}

else{

sh=999;

yu=-1;

}

printf(“%d与%d的和差积商余分别是:%d,%d,%d,%.2f,%d\n“,a,b,he,ch,ji,sh,yu);

}

谢谢

后面这一个是对的

你的那一个可以这样修改:

#include

int main()

{

int a ,b ,c;

float d;

printf(“请输入第一个整数:“);

scanf(“%d“ ,&a);

printf(“请输入第二个整数:“);

scanf(“%d“ ,&b);

c = a + b;

printf(“%d+%d=%d\n“,a,b,c);

c = a - b;

printf(“%d-%d=%d\n“,a,b,c);

c = a * b;

printf(“%d×%d=%d\n“,a,b,c);

if(b){

d = a / b;

printf(“%d÷%d=%.2f\n“,d);

c = a % b;

printf(“%d mod %d=%d\n“,c);

}

return 0;

}

C++中printf和scanf函数怎么用

#include《stdio.h》//包含头文件#include《conio.h》voidmain(){intnum;printf(“Pleaseenter:“);//输出一句话scanf(“%d“,#);//输入数据printf(“Yousenteris:%d“,num);//输出用户的输入的数据getch();}