欢迎查看蒟蒻代码堆放处
-
- 高精度除法
- 高精度乘法
- 高精度减法
- 高精度加法
- 质数勾股数
- 智能金字塔
- 字母金字塔
- 圆的面积
- 阴爻阳爻
- 一元二次方程
- 小学生数学题目
- 金额小写转大写
- 自己写的素数算法
- 翁教授写的素数算法
- 三位数水仙花
- 数字金字塔
- 输入字符判断字符值
- 文字逆序
- 冒泡排序
- 六十甲子
- 快速关机注销睡眠重启
- 快速ping
- 九九乘法表
- 星号金字塔
- 阶乘
- 调用GCC的简单编译器
- 回文数
- 猜数字
- 十进制转n进制
- n进制转十进制
- 亲密数
- 哥德巴赫猜想1+1
- 排列组合数
高精度除法
#include
#include
int main(void)
{
long long int a,b,t,count=0;
scanf("%lld %lld",&a,&b);
printf("%d.",(int)a/b);
while(count<=1000)
{
t=a*10/b;
printf("%lld",t);
a=a*10%b;
count++;
}
printf("%.30f\n",sqrt(3));
return 0;
}
高精度乘法
#include
void main()
{
int i = 0, c[400000], k = 0, la, lb;
char a[200000] = "\0", b[200000] = "\0";
scanf("%s %s", a, b);
la = strlen(a);
lb = strlen(b);
for (i = 0; i <la; i++)
for (k = 0; k <= lb - 1; k++)
c[i + k] = c[i + k] + (a[i] - '0') * (b[k] - '0');
for (i = la + lb - 1; i > 0; i--)
if (c[i] >= 10){
c[i - 1] += c[i] / 10;c[i] %= 10;}
for (i = 0; i < la + lb - 1; i++)
printf("%d", c[i]);
}
高精度减法
#include
void main()
{
int i = 0, c[400000], x,y,la, lb;
char a[200000] = "\0", b[200000] = "\0";
scanf("%s %s", a, b);
la = strlen(a);
lb = strlen(b);
if(la>lb)
{
for (i =0;i<la;i++)
c[i] = c[i] + (a[i] - '0');
for(i=0;i<lb;i++)
c[la-lb+i] = c[la-lb+i]-(b[i] - '0');
for (i = la-1 ; i >0; i--)
if (c[i] <0){
c[i - 1] = c[i-1] -1;c[i] = 10+c[i];}
for(i=0;i<la;i++)
printf("%d=%d\n",i,c[i]);
}
else if(la<lb)
{
for (i =0;i<la;i++)
c[lb-la+i] = c[lb-la+i] +(a[i] - '0');
for(i=0;i<lb;i++)
c[i] = c[i]-(b[i] - '0');
for(i=lb-1;i>0;i--)
if (c[i] <0){
c[i - 1] = c[i-1] -1;c[i] = 10+c[i];}
for(i=0;i<lb;i++)
printf("%d",c[i]);
}
else
{
for (i =0;i<la;i++)
c[lb-la+i] = c[lb-la+i] + (a[i] - '0');
for(i=lb-1;i>=0;i--)
c[i] = c[i] -(b[i] - '0');
for (i = la-1 ; i >0; i--)
if (c[i] <0){
c[i - 1] = c[i-1] -1;c[i] = 10+c[i];}
for(i=0;i<lb;i++)
printf("%d",c[i]);
}
}
高精度加法
#include
void main()
{
int i = 0, c[400000],la, lb;
char a[200000] = "\0", b[200000] = "\0";
scanf("%s %s", a, b);
la = strlen(a);
lb = strlen(b);
for (i =la-1;i>=0;i--)
c[la-i-1]=a[i]-'0';
for(i=lb-1;i>=0;i--)
c[lb-i-1]=c[lb-i-1]+b[i]-'0';
for (i =0 ; i <= (int)((la+lb)/2); i++)
if (c[i] >= 10){
c[i +1] += c[i] / 10;c[i] %= 10;}
if((int)((la+lb)/2)%2==0)
{
for(i=(int)((la+lb)/2)+1;i>=0;i--)
{
printf("%d",c[i]);
}
}
else
{
for(i=(int)((la+lb)/2);i>=0;i--)
{
printf("%d",c[i]);
}
}
}
质数勾股数
#include
#include
#include
int su(int x)
{
int i=0;
for(i=2;i<=sqrt(x);i++)
if(x%i==0)
return 0;
return 1;
}
int main()
{
int a,b,c;
for(a=1;a<=100;a++)
for(b=1;b<=100;b++)
for(c=1;c<=100;c++)
if(su(a)==1 && su(b)==1 && a*a+b*b==c*c || su(a)==1 && su(c)==1 && a*a+b==c*c || su(b)==1 && su(c)==1 && a*a+b*b==c*c )
printf("%d %d %d\n",a,b,c);
system("pause");
return 0;
}
智能金字塔
#include
#include
#include
int main()
{
int x,y,n;
char a;
scanf("%d %c %d",&x,&a,&y);
switch(a)
{
case '+': printf("%d%c%d=%d\n",x,a,y,x+y);break;
case '-': printf("%d%c%d=%d\n",x,a,y,x-y);break;
case '*': printf("%d%c%d=%d\n",x,a,y,x*y);break;
case '/': printf("%d%c%d=%f\n",x,a,y,x/y);break;
}
system("pause");
return 0;
}
字母金字塔
#include
void main()
{
int i,j;
char n;
scanf("%c",&n);
for(i=0;i<=n-'A';i++)
{
for(j=0;j<n-'A'-i;j++)
printf(" ");
for(j=0;j<=i;j++)
printf("%c",j+'A');
for(j=i-1;j>=0;j--)
printf("%c",j+'A');
printf("\n");
}
}
圆的面积
#include
#include
int main() {
float r,pi=3.1415926;
printf("这是一个计算圆的面积的程序,请输入半径:");
scanf("%f",&r);
printf("\n您的圆的面积是:%d",r*r*pi);
return 0;
}
阴爻阳爻
#include
#include
int main()
{
int a=1,b=1,c=1,d=1,e=1,f=1,g=1;
for(a=1;a<=2;a++)
{
for(b=1;b<=2;b++)
{
for(c=1;c<=2;c++)
{
for(d=1;d<=2;d++)
{
for(e=1;e<=2;e++)
{
for(f=1;f<=2;f++)
{
printf("这是第%d卦\n",g);
if(a==1)
printf("——\n");
if(a==2)
printf("--\n");
if(b==1)
printf("——\n");
if(b==2)
printf("--\n");
if(c==1)
printf("——\n");
if(c==2)
printf("--\n");
if(d==1)
printf("——\n");
if(d==2)
printf("--\n");
if(e==1)
printf("——\n");
if(e==2)
printf("--\n");
if(f==1)
printf("——\n");
if(f==2)
printf("--\n");
g++;
}
}
}
}
}
}
system("pause");
return 0;
}
一元二次方程
#include
#include
#include
int main()
{
float a,b,c,x1,x2,i;
printf("这是一个解一元二次方程的程序\n请输入abc:");
scanf("%f %f %f",&a,&b,&c);
i=b*b-4*a*c;
x1=((-b+sqrt(i))/(2*a));
x2=((-b-sqrt(i))/(2*a));
while(i>0)
{
printf("x1=%f,x2=%f",x1,x2);
break;
}
while(i==0)
{
printf("x1=x2=%f",x1);
break;
}
while(i<0)
{
printf("对不起您的方程没有实数根\n");
break;
}
system("pause");
return 0;
}
小学生数学题目
#include
#include
#include
int main()
{
int i,a,b,sum,j,n,l=1,k=0;
srand( (unsigned)time(NULL) );
printf("这是计算九九乘法程序,请输入题目道数:");
scanf("%d",&n);
for(i=1;i<=100;i++)
{
a=0;
b=0;
for(sum=1;sum<=n;sum++)
{
a=rand()%10;
b=rand()%10;
k=k+1;
printf("这是第%d道题目,您的次数还有%d次,%d*%d=",l,100-k,a,b);
scanf("%d",&j);
if(j==a*b)
{
l=l+1;
break;
}
}
if(i==100 || l==n+1)
{
goto end;
}
}
end:
printf("恭喜你完成所以挑战\n");
system("pause");
return 0;
}
金额小写转大写
#include
int main()
{
int i = 0,x,la;
char a[200000] = "\0";
scanf("%s", a);
la = strlen(a);
for(i=0;i<=la;i++)
{
switch(a[i]-'0')
{
case 0:printf("零");break;
case 1:printf("壹");break;
case 2:printf("贰");break;
case 3:printf("叁");break;
case 4:printf("肆");break;
case 5:printf("伍");break;
case 6:printf("陆");break;
case 7:printf("柒");break;
case 8:printf("捌");break;
case 9:printf("玖");break;
}
if(i==la-2 || i==la-6)
printf("拾");
if(i==la-3 || i==la-7)
printf("佰");
if(i==la-4 || i==la-8)
printf("仟");
if(i==la-5)
printf("万");
if(i==la-9)
printf("亿");
}
return 0;
}
自己写的素数算法
#include
#include
#include
#include
int main()
{
int n=1,i=2;
while(n<=99)
{
for(i=3;i<=sqrt(n);i=i+2)
{
if(n%i==0 || n%2==0)
{
break;
}
}
if(i>=n)
{
printf("%d\n",n);
}
n=n+2;
}
system("pause");
return 0;
}
翁教授写的素数算法
#include
#include
#include
int main(int argc, char *argv[])
{
const int maxnumber = 100000;
int isprime[maxnumber];
int i;
int x;
float a,a1;
a=clock();
for(i=0;i<maxnumber;i++)
{
isprime[i]=1;
}
for(x=2;x<maxnumber;x++)
{
if(isprime[x])
{
for(i=2;i*x<maxnumber;i++)
{
isprime[i*x]=0;
}
}
}
for(i=2;i<maxnumber;i++)
{
if(isprime[i])
{
printf("%d\n",i);
}
}
a1=clock();
printf("this is you code time:%fs",a1-a);
system("pause");
return 0;
}
三位数水仙花
#include
#include
int main()
{
int i,j,k,n;
for(i=100;i<=999;i++)
{
j=i%10;
k=i/10%10;
n=i/100;
if(j*j*j+k*k*k+n*n*n==i)
{
printf("水仙花数是:%d\n",i);
}
}
system("pause");
return 0;
}
数字金字塔
#include
#include
int main()
{
int a=1,b=1,n;
printf("请输入行数\n");
scanf("%d",&n);
while(a<=(n+n*n)/2)
{
printf("%d ",a);
b=1;
while(b<=n)
{
if((b+b*b)/2==a)
{
printf("\n");
}
b++;
}
a++;
}
system("pause");
return 0;
}
输入字符判断字符值
#include
#include
#include
#include
int main()
{
char a;
int b;
printf("请输入一个字符:\n");
scanf("%c",&a);
printf("%d\n",a);
system("pause");
return 0;
}
文字逆序
#include
#include
int main()
{
int i,length;
char a[10000];、
printf("这是一个逆序文字的小程序\n请输入您的文字:");
scanf("%s",a);
length=strlen(a)-1;
for(i=length;i>=0;i-=2)
{
printf("%c%c",a[i-1],a[i]);
}
system("pause");
return 0;
}
冒泡排序
#include
#include
int main()
{
int i,n,k=1;
char a[20];
printf("请输入10个数字");
for(i=0;i<=9;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<=9;i++)
{
for(k=0;k<=9;k++)
if(a[k-1]>a[k])
{
int e=a[k];
a[k]=a[k-1];
a[k-1]=e;
}
}
for(i=0;i<=9;i++)
{
printf("a[%d]=%d\n",i,a[i]);
}
system("pause");
return 0;
}
六十甲子
#include
#include
int main()
{
int i,e,d,i1=0;
char a[20]="甲乙丙丁戊己庚辛壬癸",b[24]="子丑寅卯辰巳午未申酉戌亥",c[240];
for(i=0;i<=59;i++)
{
d=(i%10)+1;
e=(i%12)+1;
c[4*i-4]=a[2*d-2];
c[4*i-3]=a[2*d-1];
c[4*i-2]=b[2*e-2];
c[4*i-1]=b[2*e-1];
}
for(i=-4;i<=232;i=i+4)
printf("%c%c%c%c \t",c[i],c[i+1],c[i+2],c[i+3]);
printf("%d",i1);
system("pause");
return 0;
}
快速关机注销睡眠重启
#include
#include
int main()
{
int n,c,d;
char a[20],b[20];
printf("这是一个懒人小程序\n1.快速关机\n2.快速注销\n3.快速重启\n4.快速睡眠\n请输入您的号码:");
scanf("%d",&n);
if(n==1)
{
printf("请输入您需要关机的时间:");
scanf("%d",&c);
sprintf(a,"shutdown -s -t %d",c);
system(a);
}
if(n==2)
{
system("shutdown -l");
}
if(n==3)
{
system("shutdown -r");
}
if(n==4)
{
system("shutdown -h");
}
system("pause");
return 0;
}
快速ping
#include
#include
int main()
{
int c,d,e;
char a[1000],b[1000];
printf("这是一个快速ping的小程序\n请输入您的次数:");
scanf("%d",&c);
system("cls");
for(d=1;d<=c;d++)
{
printf("请输入您需要的Ping的ip:");
scanf("%s",a);
sprintf(b,"ping %s",a);
system(b);
system("cls");
}
system("pasue");
return 0;
}
九九乘法表
#include
#include
int main()
{
int a,b;
for(a=1;a<=9;a++)
{
for(b=1;b<=a;b++)
{
printf("%d*%d=%d ",a,b,a*b);
}
printf("\n");
}
return 0;
}
星号金字塔
#include
#include
int main()
{
int n,i,k,j;
printf("请输入行数\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(k=n;k>=i;k--)
{
printf(" ");
}
for(j=1;j<=2*i-1;j++)
{
printf("*");
}
printf("\n");
}
for(i=n-1;i>=1;i--)
{
for(k=i;k<=n;k++)
{
printf(" ");
}
for(j=1;j<=2*i-1;j++)
{
printf("*");
}
printf("\n");
}
system("pause");
return 0;
}
阶乘
#include
#include
int main()
{
int i=1,num=1,n=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
num=num*i;
}
printf("%d\n",num);
system("pause");
return 0;
}
调用GCC的简单编译器
#include
#include
int main()
{
system("color 5e");
int a,b,c,d;
char e[1000],f[1000],g[1000],i[1000];
printf("%这是一个简易的C语言编译器\n1.编译\n2.运行\n请输入您要执行的命令数字:");
scanf("%d",&a);
if(a==1)
{
printf("请输入您的代码路径:");
scanf("%s",&e);
printf("\n请输入您的gcc路径:");
scanf("%s",&f);
for(b=1;b<=999;b++)
{
printf("\n这是您的代码路径:%s,\n这是您的gcc路径:%s\n请输入数字以确定(0表示确定1表示我要修改):",e,f);
scanf("%d",&c);
if(c==0)
{
break;
}
else
{
printf("\n请输入您的代码路径:");
scanf("%s",&e);
printf("\n请输入您的gcc路径:");
scanf("%s",&f);
}
}
printf("\n请为您的代码取名字:");
scanf("%s",&g);
sprintf(i,"%s %s -o %s",f,e,g);
printf("\n%s",i);
system(i);
}
else
{
}
system("pause");
return 0;
}
回文数
#include
void main()
{
unsigned long long i, a[100000], n, a1, a2, k = 0, j = 0, n1;
scanf("%llu", &n);
a1 = pow(10, n - 1);
a2 = pow(10, n);
for (i = a1; i <= a2; i++)
{
k = i;
j = 0;
while (k > 0){
j = j * 10 + k % 10;k = k / 10;}
if (i == j){
a[n1]=i;n1++;}
}
for(i=1;i<+n1;i++)
printf("第%llu个%llu\t",i,a[i]);
printf("您好这是回文数的结果:一共%llu个", n1);
}
猜数字
#include
#include
int main()
{
int a,b,sum;
sum=20;
srand( (unsigned)time(NULL) );
a = rand()%100;
while(1)
{
sum--;
scanf("%d",&b);
if(b>a)
printf("太大了,还剩下%d次数\n",sum);
if(b<a)
printf("太小了,还剩下%d次数\n",sum);
if(b==a)
{
printf("恭喜你答对了\n");
break;
}
if(sum==0)
{
printf("没有机会了,系统将在1秒后关机\n");
system("1000");
system("cls");
printf("请继续下一次游戏吧");
break;
}
}
system("pause");
return 0;
}
十进制转n进制
#include
#include
void main()
{
unsigned long long int n,a,b[1000],l,count1=1;
printf("这是一个计算十进制转n进制的小程序,请输入数字和n:");
scanf("%llu %llu",&a,&n);
l=log10(a)+1;
while(a>0)
{
b[count1]=a%n;
a=a/n;
count1=count1+1;
}
count1=count1-1;
while(count1>0)
{
printf("%llu",b[count1]);
count1=count1-1;
}
}
n进制转十进制
#include
#include
void main()
{
unsigned long long n,shi=0;
int la,i;
char a[63];
scanf("%lld",&n);
scanf("%s",a);
la =strlen(a);
for(i=la-1;i>=0;i--)
shi=shi+(a[i]-'0')*pow(n,la-i-1);
printf("%lld",shi);
}
亲密数
#include
#include
int main()
{
long long int i,a,b=0,n=0,max;
printf("这是一个计算亲密数的程序,请输入上线:");
scanf("%lld",&max);
for(a=1;a<max;a++)
{
for(b=0,i=1;i<=a/2;i++)
if(!(a%i))
b+=i;
for(n=0,i=1;i<=b/2;i++)
if(!(b%i))
n+=i;
if(n==a && a<b)
printf("亲密数:%lld %lld\n",a,b);
}
system("pause");
return 0;
}
哥德巴赫猜想1+1
#include
#include
su(int x) {
int i = 0;
for (i = 2; i * i <= x; i++)
if (x % i == 0)
return 0;
return 1;
}
int main()
{
int i,a,b,c;
for(i=3;i<=20;i=i+2)
for(a=3;a<=i;a=a+2)
for(b=3;b<=i;b=b+2)
for(c=3;c<=i;c=c+2)
if(su(a)==1 && su(b)==1 && su(c)==1 && a+b+c==i)
printf("%d+%d+%d=%d\t",a,b,c,i);
system("pause");
return 0;
}
排列组合数
#include
#include
int C(n, m)
{
int sum1 = 1, sum2 = 1, i1, i;
for (i = n - m + 1; i <= n; i++)
sum1 = sum1 * i;
for (i = 1; i <= m; i++)
sum2 = sum2 * i;
return sum1 / sum2;
}
int P(n, m)
{
int i, sum = 1;
for (i = n - m + 1; i <= n; i++)
sum = sum * i;
return sum;
}
int main()
{
printf("%d %d", C(5, 3), P(10, 5));
system("pause");
return 0;
}