杨辉三角形
每个数等于它上方两数之和
写法1
#include<stdio.h>
#define N 20
int main()
{
int a[N][N]={0};
int i,j,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
a[i][0]=1;
a[i][i]=1;
}
for(i=1;i<n;i++)
{
for(j=1;j<i;j++)
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
return 0;
}
写法2
#include<stdio.h>
int main()
{
int b, c, i, n, m, j, e;
double a;
scanf("%d",&n);
for(m=0;m<=n-1;m++)
{
if(m==0)
{
printf(" 1\n");
continue;
}
a=1;
for(i=1;i<=m;i++)
{
a*=i;
}
for(i=0;i<=m;i++)
{
e=a;
c=1;
for(j=2;j<=i;j++)
{
c*=j;
}
b=1;
for(j=2;j<=m-i;j++)
{
b*=j;
}
e/=(b*c);
printf("%5d",e);
}
printf("\n");
}
return 0;
}
约瑟夫环问题
#include<stdio.h>
#include<stdlib.h>
int main()
{
int m, n, i,j,*p;
scanf("%d""%d",&n,&m);
p=(int*)malloc(n*sizeof(int));
if(p==NULL)
exit(1);
for(i=0;i<n;i++)
p[i]=i+1;
i=0;
while(n>1)
{
i=(i+m-1)%n;
for(j=i+1;j<n;j++)
p[j-1]=p[j];
n--;
if(i==n)
i=0;
}
printf("%d",*p);
free(p);
return 0;
}
质数判断
#include<stdio.h>
#include<string.h>
#include"file.h"
int main()
{
file fp-User;
char name[100], password1[100], password2[100];
scanf("%s",name);/*缺少查找重复名字*/
do
{
scanf("%s",password1);
scanf("%s",password2);
}while(strcmp(password1,password2)!=0);
strcat(name,password1);
fp-User = fopen("F:\C\User.txt","a+");
fputs(name,fp-User);
return 0;
水仙花数
#include<stdio.h>
int main()
{
int n;
int a,b,c;
for(n=100;n<=999;n++)
{
a=n%10;
b=n/10%10;
c=n/100;
if(a*a*a+b*b*b+c*c*c==n)
printf("%5d",n);
}
return 0;
}
计算圆锥体积表面积
#include<stdio.h>
#include<math.h>
double Area(double r,double h);
double Volume(double r,double h);
int main()
{
double r,h,A,V;
scanf("%lf%lf",&r,&h);
A=Area(r,h);
V=Volume(r,h);
printf("Radius=%.2f,Height=%.2f,Area=%.2f,Volume=%.2f",r,h,A,V);
return 0;
}
double Area(double r,double h)
{
double A;
const double pi=3.1415926;
A=r*pi*sqrt(h*h+r*r)+pi*r*r;
return A;
}
double Volume(double r,double h)
{
double V;
const double pi=3.1415926;
V=pi*r*r*h/3;
return V;
}
后方交会
#include <stdio.h>
#include <math.h>
const double PI = 3.14159265358979; //圆周率
double radian_a(double alfa) //弧度→角度
{
double alfa1, alfa2;
alfa = alfa * 180. / PI;
alfa1 = floor(alfa) + floor((alfa - floor(alfa)) * 60.) / 100.;
alfa2 = (alfa * 60. - floor(alfa * 60.)) * 0.006;
alfa1 += alfa2;
return(alfa1);
}
int main()
{
double xa,ya,xb,yb,alfa,tA,tB;
printf("输入横坐标不为零的 A B 坐标\n");
scanf("%lf%lf%lf%lf",&xa,&ya,&xb,&yb);
tA=ya/xa;
tB=yb/xb;
alfa=radian_a(atan(tA))-radian_a(atan(tB));
if(xa>0&&xb>0)
printf("%f",alfa);
else if(xa>0&&xb<0)
printf("%f",alfa-180);
else if(xa<0&&xb>0)
printf("%f",180+alfa);
else if(xa<0&&xb<0)
printf("%f",-alfa);
return 0;
}
结语
随性发一些以前学习C语言写的一些杂七杂八的东西吧