初学C的一些简单编程、相关知识点总结
目录的符号及表征
🐟:涉及到新语句,语法
👀:学方法
⭐:重点
🕸:新知识
👣:有待改进
以下内容,都是近期通过视频、书籍、和小伙伴讨论总结所得,希望能够帮助到大家。如果有错误之处,或者其他更简便的方法,欢迎在评论区留言。
1.入门
1.1:打印"Hello world!"
//#include <stdio.h> 预处理指令,包含另一个文件(提供键盘输入输出)
#include <stdio.h>
//main:总是被第一个调用的函数,int main 组成函数语句
int main(void)
{
printf("Hello world!");
return 0;
}
1.2:英尺的转换
#include <stdio.h>
int main(void)
{
int yingchi,yingcun;
printf("请输入:");
scanf("%d %d", &yingchi, &yingcun);
//转换公式:(英尺+英寸/12)*0.3048
printf("最终身高:%f",(yingchi+yingcun/12.0)*0.3048);
return 0;
}
注意1:变量的名称更易理解
注意2:浮点数的使用,做除法时要尤为注意。yingcun/12 是取整运算,小数部分会舍去;yingcun/12.0,double类型8个字节,默认输出6位小数,(控制输出n位数,%.nlf即可)
1.3 :switch-case语句🐟
#include <stdio.h>
int main(void)
{
int type;
scanf("%d",&type);
//switch语句
switch(type)
{
case 1:
printf("Hello!");
break;
case 2:
printf("Good!");
break;
default:
printf("What?");
break;
}
return 0;
}
注意:每个case语句后须有break,否则程序会继续向下进行,直到遇到break为止
更详细内容可浏览:wretchedme
适用于:当要选择的分支过多时,if-else结构太长。同时switch(variable)的变量类型只能是char/int,若为其他类型,进行转换后使用
参考自:suxiang198
1.4:分段函数
题目:
f(x)= -1 x<0
f(x) =0 x=0
f(x)=2*x x>0
#include <stdio.h>
int main(void)
{
int x;
int f;
scanf("%d",&x);
//if-else分支
if(x<0){
f=-1;
}
else if(x==0){
f=0;
}
else{
f=2*x;
}
printf("%d",f);
return 0;
}
1.5:数字比较大小
#include <stdio.h>
int main(void)
{
int a,b,c;
int max;
scanf("%d %d %d",&a,&b,&c);
//第一大类:a>b---a>c,a<=c
if(a>b){
if(a>c){
max=a;
}
else{
max=c;
}
}
//第二大类:a<=b--b>c,b<=c
else{
if(b>c){
max=b;
}
else{
max=c;
}
}
printf("%d",max);
return 0;
}
注意:在书写代码前,合理使用结构图,理清三者大小关系
1.6:do-while循环—计算数字位数🐟
int main(void)
{
int x;
int n=0;
scanf("%d",&x);
//do-while循环体
do{
x/=10;
n++;
}while(x>0);
printf("%d",n);
return 0;
}
注意:do-while:无论第一次执行时,条件是否符合,都会执行一次;while循环,第一次符合条件时,才会执行
适用范围:
do-while:必须执行1次
for:有固定的次数
while:其他
1.7:随机数函数—猜数游戏🐟
#include <stdio.h>
//下面两个是产生随机数的头文件
#include <stdlib.h>
#include <time.h>
int main(void)
{
srand(time(0));
//产生随机数
int number=rand()%100+1;
int count=0;
int a=0;
printf("我已经想好了一个1到100之间的数");
//do-while循环进入猜数环节
do{
printf("请猜这个1到100之间的数:");
scanf("%d",&a);
count++;
if(a>number){
printf("你猜的数大了");
}
else if(a<number){
printf("你猜的数小了");
}
}while(a!=number);
printf("太好了,你用了%d次就猜到了答案。\n",count);
return 0;
}
随机数:rand()、srand()函数在include <stdlib.h>头文件中
rand:为生成[m,n]区间的整数,用公式:rand()%(n-m+1)+m,它自己使用是伪随机数,结合srand()才可实现随机功能
srand:要产生随机种子,可以用" srand(time(0));"这个语句.
time()函数:是包含在头文件 time.h 中其功能是返回一个从1970.1.1 00.00.00 到现在的秒数。因为每次运行的时间不同,因此产生的随机种子也不同,这样就保证运行时可以得到不同的随机序列。
参考自:辉小歌和polyhedronx
1.8:求平均数
#include <stdio.h>
int main(void)
{
int average;
int n=0;
int x;
int s=0;
scanf("%d",&x);
while(x!=-1){
s+=x;
n++;
scanf("%d",&x);
}
average=s/n;
printf("%d",average);
return 0;
}
注意:
连续加时:初始变量为0.例如本例中 s=0
连续乘时:初始变量为1
进而保证运算的准确性
1.9:log对数的运算👣
暂时只适用于计算log以2为底x的对数=2,4,8,16…这种
#include <stdio.h>
int