【实例说明】
从键盘输入两个整数,输出他们的积。通过本实例可理解从键盘读取输入的数据以及输出整型变量等方法。程序运行结果如下:
【实例解析】
在本例中,设两个整数分别为x、y,它们的乘积为m;程序首先调用printf()函数,提示用户输入数据,然后调用scanf()函数,输入变量x和y的值,接着求x与y的积m,最后输出结果。
算法:
{
提示用户输入数据;
输入变量x和y的值;
计算乘积;
输出乘积;
}
【程序代码】
2
3 #include < stdio.h >
4
5 void main()
6 {
7 int x,y,m; /* 定义整型变量x,y,z */
8 printf( " Please input x and y: \n " ); /* 输出提示信息 */
9 scanf( " %d%d " , & x, & y); /* 读入两个乘数,赋给x,y变量 */
10 m = x * y; /* 计算两个乘数的积,赋给变量m */
11 printf( " %d * %d = %d\n " ,x,y,m); /* 输出结果 */
12 }
【归纳注释】
本实例程序实现的是两个整数的简单乘积,同样,也可以通过修改,实现其他类型,如实型(浮点型:单精度,双精度)的计算及四则运算。
如定义为:float,则输入为:%f,输出为%f;如定义为:double,则输入为:%lf,输出为%lf;
格式化字符串
一般形式:
%[标志][输出最小宽度][.精度][长度] 类型
其中方括号[]中的项为可选项。
各项意义如下:
① 类型字符用以表示输出数据的类型:
d--以十进制形式输出带符号整型(正数不输出符号);
o--以八进制形式输出带符号整型(不输出前缀O);
x--以十六进制形式输出带符号整型(不输出前缀OX);
u--以十进制形式输出无符号整型;
f --以小数形式输出单、双精度实数;
e--以指数形式输出单、双精度实数;
g--以%f、%e中较短的输出单、双精度实数;
c--输出单个字符;
s--输出字符串。
② 标志字符为:-、+、#、空格四种:
-:结果左对齐,右边填空格;
+:输出符号(正号或负号),输出值为正时冠以空格,为负时冠以负号;
# :对c、s、d、u类无影响;
对o类,在输出时加前缀o;
对x类,在输出时加前缀0x;
对e、g、f类当结果有小数时才给出小数点。
③ 输出最小宽度:
用十进制整数来表示输出的最小位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。
④ 精度:
精度格式符以“.”开头,后跟十进制整数。
如果输出的是数字,则表示小数的位数;若实际位数大于所定义的精度数,则截去超过的部分。
如果输出的是字符,则表示输出字符的个数;
⑤ 长度:
长度格式符分h、l两种,h表示按短整型量输出;l表示按长整型量输出。
scanf()函数为输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。
格式:
scanf("格式控制字符串",地址表列);
例如:
scanf("%d %d",&a,&b);
&a &b 分别表示变量a和变量b的地址。