分享一些学习C语言常见的代码2

第二波来啦!

25判断是否是闰年
#include <stdio.h>

int main()
{ int  year,leap;
  scanf("%d",&year);
  if (year%400==0) leap=1;
  else if(year%4==0)
         if(year%100==0) leap=0;
         else leap=1;
  else leap=0;
  if(leap)  printf("%d是闰年\n",year);
     else  printf("%d不是闰年\n",year);
    return 0;
}
26判断一个数是否是素数
#include <stdio.h>
#include <math.h>

void main()
{  int i,a;
  scanf("%d",&a);
  for(i=2;i<=sqrt(a);i++)//这里利用了素数的定义特性,
  //即除了1和自身外,不能被其他自然数整除。
  //0我们只需检查到sqrt(a)即可,因为如果a有一个大于sqrt(a)的因数,那么它必定还有一个小于等于sqrt(a)的对应因数。
  {
      if(a%i==0)//a对i取余一直取到a自身的开根号,理由如上 
        break;//使用break语句跳出循环,因为此时已经找到了一个除1和本身之外的因子,说明a不是素数。
  }
  if(i>sqrt(a))//检查循环变量i是否已经超过了sqrt(a)。如果是,说明在2到sqrt(a)的范围内没有找到能整除a的数,因此a是素数。
    printf("%d是素数\n",a);
  else
    printf("%d不是素数\n",a);

}
27判断一个数是否是完数
#include <stdio.h>
#include <stdlib.h>

int main()
{ int a,b=0,i,n;
scanf("%d",&n);
for(i=1;i<n;i++)
{
    if(n%i==0)//基本上求因子都需要这个 一定是n%i!!! 
    {
        a=i;//把因子i赋值给a 
        b=b+a;//用b来叠加因子之和 
    }
}
 if(n==b) printf("%d是完数",n);
 else printf("%d不是完数",n);
    return 0;
}

28求1到n的和
#include <stdio.h>
#include <stdlib.h>

int main()
{ int s=0,i,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
    s+=i;
printf("1+2+3+...+n=%d",s);
    return 0;
}
29求200以内所有素数
#include <stdio.h>
#include <math.h>

void main()
{  int i,a,b;
 for(i=2;i<=200;i++)
 {
     for(a=2;a<=i;a++)
    {
      if(i%a==0)
        break;
    }
    if(a>sqrt(i))
    {printf("%-4d",i);
    b++;
    if(b%4==0) printf("\n");
    }

 }


}
30求n的阶乘
#include <stdio.h>
#include <stdlib.h>

int main()
{ int s=1,i,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
    s*=i;
    printf("%d!=%d",n,s);
    return 0;
}
32求最大公约数
#include <stdio.h>
#include <stdlib.h>

int main()
{  int m,n,x,y,z;
   scanf("%d%d",&m,&n);
   if(m<n)
   {
       z=m;
       m=n;
       n=z;
   }
   x=m;y=n;
   while(y!=0)
   {
       z=x%y;
       x=y;
       y=z;
   }
    printf("最大公约数为:%d",x);
    return 0;
}

 

33-1,2,3,4可组成的不同的三位数
#include <stdio.h>

int F()
 {  int x,a,b,c,i=0;
     for(a=1;a<=4;a++)
     {
         for(b=1;b<=4;b++)
         {
             if(b==a) continue;
             for(c=1;c<=4;c++)
             {
                 if(c==a||c==b) continue;
                 x=a*100+b*10+c;
                 printf("%-5d",x);
                 i++;
                 if(i%4==0) printf("\n");
             }
         }
     }
     return i;
 }

int main()
{
    printf("共有%d个不同的三位数",F());
    return 0;
}

34九九乘法表for
/*#include <stdio.h>

int main()
{ int  a,b;
 for(a=1;a<=9;a++)
   {
        { for(b=1;b<=a;b++)
          printf("%d*%d=%-4d",a,b,a*b);
        } printf("\n");
   }
}*/

#include<stdio.h> 
int main()
{
	int a,b;
	for(a=1;a<=9;a++)
	{
		for(b=1;b<=a;b++)
		{
			printf("%d*%d=%-4d",a,b,a*b);
		
		}
			printf("\n");
	}
	
	
	return 0;
}
35递归调用求阶乘
#include <stdio.h>
#include <stdlib.h>

int fac(int n)
{
    int f;
    if(n<=1) return 1;
   else f=n*fac(n-1);
   return f;
}

int main()
{  int n;
   scanf("%d",&n);
   printf("%d!=%d",n,fac(n));
   return 0;
}

36密码游戏
#include <stdio.h>
#define x 22190654

int main()
{ int a,i=1;
 while(a!=x)
 {
     printf("请输入密码:");
     scanf("%d",&a);
     if(a==x)
     {
         printf("密码正确!");
         break;
     }
     else printf("请重新输入\n");
     i++;
     if(i%6==0)//只允许输入6次 
     {
         printf("你被锁住了!");
         break;
     }
 }

    return 0;
}
37判断三角形
#include <stdio.h>
#include <stdlib.h>

int S(float a,float b,float c)
   {
     if(a+b>c&&a+c>b&&b+c>a&&a-b<c&&a-c<b&&b-c<a)
      {if(a==b&&a==c&&b==c)
       printf("可构成等边三角形");
       else if(a==b||a==c||b==c)
       printf("可构成等腰三角形");
       else if(a*a+b*b==c*c)
       { if(a==b||a==c||b==c)
        printf("可构成等腰直角三角形");
         else printf("可构成直角三角形");
       }
       else printf("可构成普通三角形");
      }
    else printf("不能构成三角形");
   }


int main()
{ float a,b,c;
  printf("请输入三条边长:");
  scanf("%f%f%f",&a,&b,&c);
S(a,b,c); 


    return 0;
}
38判断一个数是几位数
#include <stdio.h>
#include <stdlib.h>

int main()
{ int a,i=0,x;
  scanf("%d",&a);
  x=a;
  while(x!=0)
  {
      x=x/10;
      i++;
  }
    printf("%d是%d位数",a,i);
    return 0;
}

 

39输出各类型字符数
#include <stdio.h>

int main()

{

    char x;
    int a=0,b=0,c=0,d=0;
    printf("请输入一行字符:");
    while ((x=getchar())!='\n')
     {
        if (x>='a'&&x<='z'||x>='A'&&x<='Z')//判断字母字符 
           {
                a++;
           }
       else if (x==' ')//判断空格字符 
           {
              b++;
           }
        else if (x>='0'&&x<='9')//判断数字字符 
           {
              c++;
           }
        else  d++;
     }//上面的a,b,c,d随循的次数增加,可以判断出各种字符共有几个 
       printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符:%d\n",a,b,c,d);

       return 0;

}
40输出菱形的星星
#include <stdio.h>
#include <stdlib.h>

int main()
{ int i,k;
 for(i=1;i<=4;i++)
 {
     for(k=1;k<=(2*i-1);k++)
        printf("*");
        printf("\n");
 }
  for(i=3;i>=1;i--)
  {
      for(k=1;k<=(2*i-1);k++)
        printf("*");
        printf("\n");
  }
    return 0;
}
41函数调用1到6的阶乘和
#include <stdio.h>
#include <stdlib.h>

int main()
{int n,s=0,t=1;
for(n=1;n<=6;n++)
{
    t*=n;
    s+=t;
}
    printf("1+2!+3!+...+6!=%d",s);
    return 0;
}
42起泡法排序
#include <stdio.h>
#include <stdlib.h>

int main()
{
 int i,j,k;
 int a[10];
 printf("请输入要排序的数:");
 for(i=0;i<10;i++)
 scanf("%d",&a[i]);
 for(j=0;j<9;j++)
    for(i=0;i<9-j;i++)
     {
         if(a[i]>a[i+1])
         {
             k=a[i];
             a[i]=a[i+1];
             a[i+1]=k;
         }
     }
    for(i=0;i<10;i++)
    printf("%-4d",a[i]);


}

有用点个赞和关注吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值