简单格式的输入输出
简单的输出语句:printf
-
语法
printf "格式控制" 输出表列
-
举例:
printf("%d,%f,%c",a,b,c);
-
说明:
由
%
和特定字符组成,如:%d、%c、%f
等,是格式说明符,用于说明输出项目所采用的格式; -
基本的格式字符
-
%d 按十进制整型数据的实际长度输出。
-
%c 仅输出一个字符。
-
%s printf("%s\n", "CHINA");输出的结果是字符串 CHINA
-
%f 以小数形式输出一个实数(含单双精度数)。整数部分全部输出,并输出6位小数。
-
%e或%E 以指数形式输出一个实数(含单双精度数)。小数点前仅1位非0数字,并输出6位小数。
简单的输出语句:scanf
-
语法
scanf "格式控制" 地址表列
-
举例:
scanf("%d%f%s",&a,&b,&c);
-
说明:
“格式控制”的含义同printf函数,说明输入的数据应使用的格式。
“地址表列”是由若干个地址组成的,可以是变量的地址或字符串的首地址。
&
是取地址运算符,用于取出变量的地址。 与格式输出一样,在格式控制中,用于说明输入数据格式的格式说明符总是以%
开头,后面紧跟的是具体的格式。
较复杂的输入输出格式
按指定格式输出数据的宽度、小数位数、上下行数据按小数点对齐、用八进制、十六进制输出等。
输出数据格式控制
整型格式说明符
-
十进制形式
-
%d或%md int型
-
%ld或%mld long型
-
%u或%mu 无符号基本型
-
%lu或%mlu 无符号长整型
-
-
八进制形式
-
%o或%mo
-
%lo或%mlo
-
-
十六进制形式
-
%x或%mx
-
%lx或%mlx
-
特殊说明:
m
表示输出的整型数据所占总宽度(即列数),其中: 当实际数据的位数不到m位时,数据前面将用空格补满; 若实际数据位数大于m,则以数据的实际位数为准进行输出。字符型格式说明
-
字符char型
-
%mc 输出的字符占m列
printf("%3c",a); // a
-
-
字符串
-
%ms 输出的字符串占m列。若串长>m,全部输出;若串长<m,左面补空格。
-
%-ms 输出的字符串长<m,右面补空格
-
%-m.ns 只取字符串前n个字符。若n<m,右面补空格;若n>m,m自动取n值。
-
-
实型格式说明符
-
十进制形式
%m.nf或-%m.nf
-
指数形式
%m.ne或-%m.ne
-
%g或%G形式
根据数值的大小,自动选%f 或 %e中宽度较短的一种格式,不输出无意义的0。
-
顺序程序结构案例
-
-
案例一 /* **输入三角形的三条边,求三角形的面积 */ #include <stdio.h> #include <math.h> int main() { // 定义三条边 float a,b,c, // 定义面积 float area; float s; scanf("%f%f%f",&a,&b,&c); s = (a + b + c) / 2.0; area = sqrt(s*(s-a)(s-b)(s-c));// 三角形海伦公式 printf("%.2f",area); }
案例二 /* *从键盘输入一个大写字母,要求用小写输出。 */ #include <stdio.h> int main() { char a,a1; scanf("%c",&a); a1 = a + 32; printf("%c",a1); }
案例三 /* *求一元二次方程ax2+bx+c=0的根。 */ #include <stdio.h> #include <math.h> #include <stdlib.h> int main() { // 定义一元二次方程的三个参数 int a,b,c; // 定义方程的两个根 float x1,x2,p; // 定义根的计算值 int m,n; scanf("%d,%d,%d",&a,&b,&c);//键盘输入一元二次函数的三个参数 m = -b / 2 * a; p = abs(b^2 - 4 * a * c); n = sqrt((b^2 - 4 * a * c) / 2 * a); printf("此方程的解x1=%f,x2=%f",x1,x2); return 0; }
-