700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c语言中的printf函数和scanf的区别

c语言中的printf函数和scanf的区别

时间:2019-08-01 02:20:31

相关推荐

c语言中的printf函数和scanf的区别

--printf函数在c语言中的普通用法

在c语言中printf函数的作用非常大,用途也非常广泛,它主要具有打印功能。

在调用printf函数是必须给其提供格式串,格式串后面的参数是需要在显示时插入到该串中的值。

其主要的语法格式为:printf(“格式串”,表达式1,表达式2);在使用该函数时其字数没有限制,显示的值可以是变量,常量,或者更加复杂的表达式。

下面让我们看看如下代码,思考其函数的值

int main(){int a,b;float c;a = 78;b=53c = 0.84f;printf("%d%d%f",a,b,c);return 0;}//结果为a=78, b = 53 c = 0.840000

其中%d%f 为printf函数使用时的转换说明。%d表示二进制转化为十进制进行整数打印,%f表示打印一个浮点数格式。可以这样理解%是一个占位符用来说明print打印的格式,比如%d指打印整数,%f打印浮点数,%lf 打印双精度浮点型,%s打印字符串。

printf函数也可以直接打印括号中的内容

int main(){printf("我爱你ll");return 0;}//结果为 我爱你ll

pintf也可以打印表达式

int main(){int a = 20;int b = 30;printf("%d,a+b);return 0;}//结果为50

printf函数必须服从格式串

int a = 20;printf("%f,a);//会报错

这个程序运行不出,开始定义a为整数,%f为浮点型,printf识别错误。

scanf函数的使用

如同printf函数一样,scanf函数也根据特定的格式读取输入,scanf函数提示用户随机输入一个用户想要输入的值。

其使用的语法为

int main(){int a = 0;scanf("%d,&a);return 0;}

像printf函数一样,scanf函数是由格式串控制的。scnaf函数从左边处理字符串的信息,对于每一个格式说明,scanf函数读入适当项并且必要时跳过空格,遇到不符合的格式时候停止。如果读入时候发现有一项错误,那么scanf 函数会立刻停止。

下面看一串代码,体验scanf函数的运行方法

int main(){scanf("%d%f%f",&x,&i,&y);return 0;}// 如果用户输入12.3 45.6 789 那么x,i,y,的值为多少

先看代码运行scanf函数时先到%d,scanf明白要读一个整数,读到小数点时候停下来,所以x=12

接着%f读取一个浮点型小数0.3,后面遇到空格不属于小数停下,所以i = 0.3

然后再一次读入%f浮点型小数,先遇到空格scanf函数直接跳过不读入,这一次scanf 分别读入4,5.,6,之后遇到空格不属于浮点数停下,所以 y = 45.6

下面看scanf函数和printf 的实例

1编写一个程序,显示年月日,以下面的格式输出

enter a date (mm/dd/yyyy):2/17/

you entered the date 0217

#include <stdio.h>int main (void){int number;float price;int day, month, year;printf ("Enter item number:");scanf ("%d", &number);printf ("Enter unit price:");scanf ("%f", &price);printf ("Enter purchase date (mm/dd/yyyy):");scanf ("%d/%d/%d", &month, &day, &year);printf ("Item\t\tUnit\t\tPurchase\n");printf ("\t\tPrice\t\tDate\n");printf ("%d\t\t$%7.2f\t%.2d/%.2d/%d", number, price, month, day, year);return 0;}

2,编写一个程序,要求用户随机输入的1到16个数字,每行输入4个,并求出每行,每列,2条对角线的元素之和

#include <stdio.h>int main (void){int a[4][4];int i, j;printf ("Enter the numbers from 1 to 16 in any order:\n");for (i=0; i<4; i++){for (j=0; j<4; j++){scanf ("%d", &a[i][j]);}}for (i=0; i<4; i++){for (j=0; j<4; j++){printf ("%2d\t", a[i][j]);}printf ("\n");}int row[4], col[4], dia[4];int sum = 0;// 下面是求行; printf ("Row sums: ");for (i=0; i<4; i++){sum = 0;for (j=0; j<4; j++){sum += a[i][j];}row[i] = sum;}for (i=0; i<4; i++) {printf ("%d ", row[i]);}printf ("\n");// 求列;printf ("Column sums: ");for (j=0; j<4; j++){sum = 0;for (i=0; i<4; i++){sum += a[i][j];}col[j] = sum;}for (i=0; i<4; i++) {printf ("%d ", col[i]);}printf ("\n"); // 对角;printf ("Diagonal sums: ");sum = 0;for (i=0; i<4; i++){sum += a[i][i]; }dia[0] = sum;sum = 0;for (i=0; i<4; i++){sum += a[i][3-i];}dia[1] = sum;for (i=0; i<2; i++) printf ("%d ", dia[i]);return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。