C语言实用类板子
各位刚刚开始学习C语言的小伙伴是不是有的时候很郁闷,老是记不住一些常用的套路,在这里我总结了一些常用的C语言套路,方便使用。
一、 冒泡排序
- 核心内容
//n是数组里面的个数
for(i=0; i<n-1; i++)
{
for(j=0; j<n-i-1; j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
- 利用函数包装调用
#include <stdio.h>
#include <stdlib.h>
void paixu(int n,int a[n])
{
int i,j;
int temp=0;
for(i=0; i<n-1; i++)
{
for(j=0; j<n-i-1; j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0; i<n; i++)
{
printf("%d\t",a[i]);
}
}
int main()
{
int n,i;
scanf("%d",&n);
int a[n];
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
paixu(n,a);
return 0;
}
二、 最大公约数和最小公倍数
#include <stdio.h>
#include <stdlib.h>
int max(int a,int b)
{
int temp;
if(a<b) //使a最大。
{
temp=a;
a=b;
b=temp;
}
while(b!=0) //辗转相除法
{
temp=a%b;
a=b;
b=temp;
}
return a;
}
int min(int a,int b)
{
int tt;
tt=a*b/(max(a,b));//最小公倍数就是两数之积除以最大公约数。
return tt;
}
int main()
{
int a,b;
int maxp,mino;
scanf("%d%d",&a,&b);//输入两个数
maxp=max(a,b);
mino=min(a,b);
printf("最大公约数是:%d,最小公倍数是:%d\n",maxp,mino);
return 0;
}
三、 水仙花数(三位)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
scanf("%d",&n);
int q,w,e;
q=n/100;
w=n%100/10;
e=n%100%10;
if(n==(q*q*q+w*w*w+e*e*e)){
printf("%d是水仙花数\n",n);
}
else{
printf("%d不是水仙花数\n",n);
}
return 0;
}
四、素数
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m,i,k;
scanf("%d",&m);
k=(int)sqrt(m);//使时间复杂度降低
for(i=2; i<=k; i++)
{
if(m%i==0)
break;
}
if(i>k)
{
printf("%d是素数\n",m);
}
else
{
printf("%d不是素数\n",m);
}
return 0;
}
五、闰年判断
1.能被4整除而不能被100整除。
2.能被100整除也能被400整除
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m;
scanf("%d",&m);
if((m%4==0)&&(m%100!=0)||((m%100==0)&&(m%400==0))){
printf("%d是闰年\n",m);
}
else{
printf("%d不是闰年\n",m);
}
return 0;
}
以上就是我总结的一些实用类板子,但是最重要的还是需要你自己牢记于心,多敲多练。