蒟蒻C语言代码堆放处

欢迎查看蒟蒻代码堆放处

    • 高精度除法
    • 高精度乘法
    • 高精度减法
    • 高精度加法
    • 质数勾股数
    • 智能金字塔
    • 字母金字塔
    • 圆的面积
    • 阴爻阳爻
    • 一元二次方程
    • 小学生数学题目
    • 金额小写转大写
    • 自己写的素数算法
    • 翁教授写的素数算法
    • 三位数水仙花
    • 数字金字塔
    • 输入字符判断字符值
    • 文字逆序
    • 冒泡排序
    • 六十甲子
    • 快速关机注销睡眠重启
    • 快速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;/*定义了两个变量,一个数组C(存结果的),la,lb输入的两个数字位数*/
	char a[200000] = "\0", b[200000] = "\0";/*定义两个字符串数组*/
	scanf("%s %s", a, b);/*输入需要计算的数字*/
	la = strlen(a);/*计算数字a的位数*/
	lb = strlen(b);/*计算数字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');/*a[i]-'0'变成数字,乘起来存入数组*/
	for (i = la + lb - 1; i > 0; i--)/*遍历进位*/
		if (c[i] >= 10){
     c[i - 1] += c[i] / 10;c[i] %= 10;}/*如果当前的数组大于10,除以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");
  }
  // system("pause");
  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;
}




你可能感兴趣的:(c语言)