偶尔会更新一哈哈,很多忘记了
1.宏定义
#define q 2 //q=2
#define min(a,b) (a)<(b)?(a):(b) //a<b则返回 a,反之返回 b(三目运算)
2.定义数组(一般来说数组可以放心开大一点,有些坑爹的题目必须开大不然就报错,毕竟现在内存不值钱)
#include<stdio.h>
int a[1000000]; //一些数组太大不能开在主函数里面,会爆炸的
int main(){
//……
}
3.建议 .c 文件全部用.cpp文件(也就是用c++的文件写c语言的)
可以使用#include<bits/stdc++.h>头文件 ,
其包含了大部分c++需求的头文件集合,也就是最熟的 sort() 排序 在里面
不过一些平台不能用就算了,一般情况可以套一下
如果使用c语言和原来一样写就行了,没太大的影响
最常见的就是:
c语言文件
int i;
for(i=0;i<n;i++)
c++文件
for(int i=0;i<n;i++)
4.能用数组完成的尽量用数组(除非有特殊要求云云)<竞赛推荐、日常交作业推荐>
5.return 0 是一个程序的结束,一般来说不写也是可以的 <自己可以去试试>,不过特殊情况特殊看待
5.吃掉回车
#include<stdio.h>
int main()
{
int n;
char a[10];
scanf("%d",&n);
getchar(); //要加上,因为scanf后要回车,必须拿一个getchar吃掉回车,否则后面就错了
gets(a);
printf("%s",a);
}
6.加减乘除
#include<stdio.h>
int main()
{
int a=2,b=3;
a++; //就是 a=a+1,a+=1
a--; //就是 a=a-1,a-=1
a=a*b; //就是 a*=b
a=a/b; //就是 a/=b
}
7.printf
#include<stdio.h>
int main()
{
int n=145;
double m=12.222;
printf("%o\n",n); //转化为八进制
printf("%X\n",n); //转化为十六进制
printf("%.2f\n",m); //保留两位小数
printf("%5.1lf",m); //占的总位置数5,(空格1位,整数2位,小数点1位,小数1位)
}
8.数学计算
#include<math.h>
#include<stdio.h>
//只例举常用的,具体可以去百度 math.h
int main()
{
int n=2,m=3,k=4;
double p;
p=pow(n,m);
printf("%.lf",p);
//double acos (double) //反三角函数,(另:π = acos(-1))
//double pow(double x,double y) //计算x的y次幂
//double sqrt (double) //开平方根
//double fabs (double) //求绝对值
}
9. 强制类型转换
#include<stdio.h>
int main()
{
int k=4;
//(float)k,强制类型转换,把 int的 k暂时变成 float计算 , 另外也可以通过 k*1.0 来改变
printf("%f,%f",(float)k,k*1.0);
}