输出
- 输出:将程序的运行结果输出到控制台或终端窗口中
printf语法格式
int printf (const char *format, ...);
- format参数是一个格式化字符串,包含了输出的格式控制信息
- 后面的参数
...
是可变参数,参数(要输出的数据)长度不固定
- 格式化占位符 | 打印格式 | 对应数据类型 | 含义 | | —- | —- | —- | | %c | char | 字符型,输入的数字按照ASCII码相应转换为对应的字符 | | %hd | short int | 短整数 | | %hu | unsigned short | 无符号短整数 | | %d | int | 接受整数值并将它表示为有符号的十进制整数 | | %u | unsigned int | 无符号10进制整数 | | %ld | long | 接受长整数值并将它表示为有符号的十进制整数 | | %f | float | 单精度浮点数 | | %lf | double | 双精度浮点数 | | %e,%E | double | 科学计数法表示的数,此处”e”的大小写代表在输出时用的”e”的大小写 | | %s | char | 字符串。输出字符串中的字符直至字符串中的空字符(字符串以’\0‘结尾,这个’\0’即空字符) | | %p | void | 以16进制形式输出指针 | | %o | unsigned int | 无符号8进制整数 | | %x,%X | unsigned int | 无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF |
示例代码:
#include <stdio.h>
int main() {
// 定义变量
char c = 'A';
short s = 10;
int i = 10;
long l = 10;
float f = 1.123456789123456789;
double d = 1.123456789123456789;
unsigned int ui = 20;
char *name = "bill";
// 格式化输出
// 整型
printf("c=%d\n", c);
printf("s=%hd\n", s);
printf("i=%d\n", i);
printf("l=%ld\n", l);
// 浮点类型
printf("f=%.10f\n", f);
printf("d=%.20lf\n", d);
// 无符号数据
printf("u=%u\n", ui);
// 八进制和十六进制 可以加上前缀# 自动输出八进制和十六进制0或0x
printf("o=%#o\n", 120);
printf("x=%#x\n", 120);
// 字符串类型
printf("s=%s\n", name);
// 内存地址
printf("ps=%p\n", &s);
return 0;
}
输入
- 输入:接收用户输入的数据的过程
scanf语法格式
scanf("格式化字符串", &变量1, &变量2,...);
- 格式化字符串用于指定输入的数据类型及其格式
- 变量1、变量2等是要读入的变量的地址
示例代码:
#include <stdio.h>
int main() {
// 定义int类型变量age,通过scanf输入内容,然后打印内容
int age;
printf("请输入年龄:");
scanf("%d", &age);
printf("age = %d\n", age);
return 0;
}
案例
- 从键盘输入一个圆形的半径,输出圆的周长和面积
- 思路步骤
1.定义常量pi
2.定义半径变量r
3.输入半径
4.求周长和面积, * 为乘以运算符
5.输出周长和面积
示例代码:
#include <stdio.h>
int main() {
// 1.定义常量pi
const double pi = 3.1415;
// 2.定义半径变量r
double r;
// 3.输入半径
printf("请输入半径:");
scanf("%lf", &r);
// 4.求周长和面积, * 为乘以运算符
double len = 2 * pi * r;
double area = pi * r * r;
// 5.输出周长和面积
printf("周长len = %lf, 面积area = %lf\n", len, area);
return 0;
}