#include <stdio.h>
int main()
{
int data1=3;
float data2=2.2;
int data3;
float data4;
printf("得到data1为%f\n",data1); //错误,data1为整型,没有转换
printf("得到data1为%f\n",(float)data1);
printf("得到两个数字分别为%d,%.2f\n",data1,data2); //%.nf表示小数点后保留n位
data3=data1+data2;
printf("那么这两个数的和为%f\n",data3); //错误,data3为整型,要转换
data3=(float)data1+data2;
printf("那么这两个数的和为%.2f\n",data3); //错误,没转换
printf("那么这两个数的和为%.2f\n",(float)data3);
printf("那么这两个数的和为%.2f\n",data1+data2); //没有定义data3,转不转换都可以
printf("那么这两个数的差为%.2f\n",data1-data2);
printf("那么这两个数的积为%.2f\n",data1*data2);
data4=(float)data1/data2; //只要含整数,则四种方式均可
printf("那么这两个数相除为%f\n",data4);
printf("那么这两个数相除为%f\n",(float)data1/data2);
printf("那么这两个数相除为%f\n",data1/(float)data2);
printf("那么这两个数相除为%f\n",(float)data1/(float)data2);
return 0;
}
D:\C语言\code\第二章>gcc test2.c
D:\C语言\code\第二章>a.exe
得到data1为0.000000
得到data1为3.000000
得到两个数字分别为3,2.20
那么这两个数的和为0.000000
那么这两个数的和为0.00
那么这两个数的和为5.00
那么这两个数的和为5.20
那么这两个数的差为0.80
那么这两个数的积为6.60
那么这两个数相除为1.363636
那么这两个数相除为1.363636
那么这两个数相除为1.363636
那么这两个数相除为1.363636
D:\C语言\code\第二章>
- printf用法: printf("%d,%f,%f",a,b,c);
- scanf用法:scanf("%d,%f,%f",&a,&b,&c); (注:要输入""内的整体,不写\n)
- 其中,printf是我们可以看到的内容,即打印出来的内容,scanf是我们输入的内容,即从键盘上扫描的数据
#include <stdio.h>
int main()
{
int data1;
int data2;
float data3;
printf("请输入:\n");
scanf("data=%f",&data3); //要输入”“中相同的内容,不能只输入数据,否则出错
printf("你的数据是:%.2f\n",data3);
printf("请输入两个数:\n");
scanf("%d%f",&data1,&data3); //scanf不用\n,输入可用空格/换行
printf("你的数据是:data1=%d,%.2f\n",data1,data3);
printf("请输入三个数:\n");
scanf("%d,%d,%f",&data1,&data2,&data3);
//若有符号,则输入时也要输入,因此,在scanf里不要添加符号/空格/其他任意字符,防止出错
//建议每个变量使用一个scanf
printf("你的数据是:%d,data2=%d,%.2f\n",data1,data2,data3);
return 0;
}
D:\C语言\code\第二章>gcc test1.c
D:\C语言\code\第二章>a.exe
请输入:
data=1.5645
你的数据是:1.56
请输入两个数:
10 3.6756
你的数据是:data1=10,3.68
请输入三个数:
10,20,5.6765
你的数据是:10,data2=20,5.68
D:\C语言\code\第二章>
#include <stdio.h>
int main()
{
int data1;
char data2;
float data3;
printf("依次输入整数、字符、小数\n");
scanf("%d%c%f",&data1,&data2,&data3); //输入时不约束&.nf
printf("你输入的数据为:data1=%d,data2=%c,data3=%.3f\n", \
data1,data2,data3); //数据太长时,用\来表示断行连接
//在输入字符型时,空格和回车会被看作字符
//因此在输入时不能出现空格和回车,直接输入
//一个%c只能输入一个字符,否则编译出错,如下:
//依次输入整数、字符、小数
//189yuki3.6787
//你输入的数据为:data1=189,data2=y,data3=0.000000
return 0;
}
D:\C语言\code\第二章>gcc test_scanf_char.c
D:\C语言\code\第二章>a.exe
依次输入整数、字符、小数
189d3.57645
你输入的数据为:data1=189,data2=d,data3=3.576
D:\C语言\code\第二章>
- 其他输入输出:getchar、putchar、puts、gets(数组知识):
#include <stdio.h>
/*
与printf区别:
1.自动加入换行符,不需要输入\n
2.printf支持多种输出,puts只输出字符串
*/
int main()
{
char c;
puts("请输入一个字符");
c=getchar();
puts("你输入的字符是:");
putchar(c);
return 0;
}
D:\C语言\code\第二章>gcc test_getput.c
D:\C语言\code\第二章>a.exe
请输入一个字符
y
你输入的字符是:
y
(以下错误:只能输入单个字符)
D:\C语言\code\第二章>a.exe
请输入一个字符
dnjvb
你输入的字符是:
d
D:\C语言\code\第二章>