刚接触c语言我们接触的第一个就是printf
#include<stdio.h>
int main(){
printf("hello world");
return 0;
}
这样我们就能输出一句简单的话了,但是这样的输出是固定的,我们又应该怎么让他有所改变呢,
这个时候就需要scanf了他可以让计算机读进去我们输入的一些东西,再通过别的方式输出出来。
#include<stdio.h>
int main(){
int a;
scanf("%d",&a);
printf("%d",a);
return 0;
}
这里我们就定义了一个整型的变量然后再通过printf把这个整型输出出来,但是我们有时候想要的是浮点数,那就需要定义其他的类型了
变量名称 | 变量类型 | 输入输出是应用 |
int | 整型变量 | %d |
double | 双精度浮点数 | %lf |
float | 单精度浮点数 | %f |
char | 字符类型 | %s/%c |
在我们定义这些类型后我们的输入输出也必须一一对应,因为不同类型的变量在计算机内部的存储方式不同,你定义他是什么变量计算机就会以什么形式储存它,因此你的输入类型的形式和输出类型的形式必须和你定义的一致(输入和输出可以不一样,因为你中间可能因为需要把他转换成了其他类型,输出的时候也必须是他在输出前所对应的类型。)这里只举例了几个常用的变量类型,后续需要用到其他的可以自己总结。
学完输入输出我们就可以进行一些简单的数学运算了,但是计算机的计算还是比较死板的需要我们写一个相对完善的程序。
#include<stdio.h>
int main(){
int a,b;
scanf("%d %d",&a,&b);
printf("%d",a/b);
return 0;
}
这个代码的含义就是a除以b但是计算机里面他只认你定义的变量类型,在我们日常计算当中两个数相除不一定是整数,但是在计算机内部两个整型变量相除一定是整数,比如这个他的含义就是a/b取整,小数部分,或者说余数部分省略了,同时关于scanf的输入这里也有了一些讲究,因为scanf里面放的是%d %d所以你的输入格式也必须是一个数空格一个数,这样我们就知道了scanf里面如果你要传进去让计算机认识你的东西,必须传的形式和你定义的形式一样,只有这样才可以被准确的读到。对于整数你不仅可以用‘/’去整还可以用‘%‘取余
#include<stdio.h>
int main(){
int a,b;
scanf("%d %d",&a,&b);
printf("%d",a%b);
return 0;
}
这里就是的输出就是a除以b的余数。这就是整型的变量之间的特殊性。
但是当浮点数和整型相遇呢?
结果就是他会被强制转换成浮点类型。但是这也有人会经常犯一个小错误就像这样
#include<stdio.h>
int main(){
int a=9,b=6;
double c;
c=a/b;
printf("%lf",c);
return 0;
}
明明定义了c是浮点数,也的确拿%lf来输出浮点数,却输出了一个错误的答案,这个的原因还是上面说的,整型相除还是整型,你把他们相除后的那个整型赋值给了一个浮点数所以答案是错误的,这个时候你只需要这样
#include<stdio.h>
int main(){
int a=9,b=6;
double c;
c=1.0*a/b;
printf("%lf",c);
return 0;
}
当整型和浮点数相乘的时候会自动转换成浮点数,再把这个浮点数值赋值给浮点数就可以了。此时你又想保留小数点后几位吧那么你只需要把你的%lf改成%.2lf这样就会只输出两位小数了,如果你还想改变他的占位宽度就可以用%5.2lf此时他的含义就是占5个字符宽度,小数保留两位。
还有就是字符类型了,字符类型大部分是跟随字符数组出现的,会在数组的位置再说字符数组的用法。