--printf函数在c语言中的普通用法
在c语言中printf函数的作用非常大,用途也非常广泛,它主要具有打印功能。
在调用printf函数是必须给其提供格式串,格式串后面的参数是需要在显示时插入到该串中的值。
其主要的语法格式为: printf(“格式串”,表达式1,表达式2);在使用该函数时其字数没有限制,显示的值可以是变量,常量,或者更加复杂的表达式。
下面让我们看看如下代码,思考其函数的值
int main()
{
int a,b;
float c;
a = 78;
b=53
c = 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,
return 0;
}
像printf函数一样,scanf函数是由格式串控制的。scnaf函数从左边处理字符串的信息,对于每一个格式说明,scanf函数读入适当项并且必要时跳过空格,遇到不符合的格式时候停止。如果读入时候发现有一项错误,那么scanf 函数会立刻停止。
下面看一串代码,体验scanf函数的运行方法
int main()
{
scanf("%d%f%f",
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/2011
you entered the date 20110217
#include <stdio.h>
int main (void)
{
int number;
float price;
int day, month, year;
printf ("Enter item number:");
scanf ("%d",
printf ("Enter unit price:");
scanf ("%f",
printf ("Enter purchase date (mm/dd/yyyy):");
scanf ("%d/%d/%d", &month, &day,
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",
}
}
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;
}