#踏上Linux之旅——Day3--C语言经典程序

#数据类型与基本语句

 1.求100以内的素数,全部打印出来

#include<stdio.h>
int main()
{
    printf("100以内的素数有:\n");
    int i,j;
    int count=0;
    for(i = 2;i <= 100;i++)
    {
        for(j = 2;j <= i;j++)
        {
            if(i%j==0)
            {
                break;
            }
        }
        if(j>=i)
        {
            count++;
            printf("%d\n",i);
        }
    }

    printf("100以内素数一共有%d\n",count);
return 0;
}

 

2.编写一个程序,求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12

#include <stdio.h>
#include  <math.h>

//编写一个程序,求出满足下列条件的四位数:
//该数是个完全平方数,且第一、三位数字之和为10,
//第二、四位数字之积为12    

int main()
{
int i;
int a,b,c,d,e;

for(i=32;i<100;i++)
{
a=i*i;
b=a%10;
c=a/10%10;
d=a/10/10%10;
e=a/10/10/10;
if((c + e  == 10)&&(b * d == 12))
{
printf("%d\n",a);
}
}
return 0;
}

3.通过编程实现,统计1~n有多少个9?(提示:n通过参数传入)

#include<stdio.h>
int main()
{
int n;
int i,j;
int t,m;
int count=0;
scanf("%d",&n);

for(i=1;i<=n;i++)
{
  t=i;
   while(t!=0)
{
if(t%10==9)
{
 count++;
 }
  m= t/10;
   t=m;
   }
}
   printf("output:%d\n",count);
return 0;

}

4.一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数

 

#include<stdio.h>
int main()
{
int i,j,sum=1;
for(i = 3;i <= 1000;i++)
{

    for(j=2;j<i;j++)
    {
        if(i%j==0)
        {
            sum+=j;
        }
    }
    if(i==sum)
    {
        printf("%d\n",i);
    }
    sum=1;
}

return 0;
}
 

5.求两个数的最大公约数,最小公倍数?

#include<stdio.h>

int main()

{

int a = 0;    
int b = 0;    
int t = 0;    
printf("请输入两个:");
scanf("%d%d", &a, &b);
int m = a;
int n = b;

while(a%b!=0)

{

t=a%b;

a=b;

b=t;

 

}

printf("最大公约数是",b);

printf("最小公倍数是",m*n/b);

 

return 0;

6.设计一个计算器程序.

 

#include<stdio.h>
int main()
{
    int a,b;
    char ch;
    scanf("%d%c%d",&a,&ch,&b);
 

    switch(ch)
   {
           case '-':printf("%d",a-b);
                break;
        case '+':printf("%d",a+b);
                break;
        case '*':printf("%d",a*b);
                break;
        default : printf("实现不了") ;
                break;
   }

return 0;
}

7. 设计一个日历程序,输入年月日,输出当年第多少天

#include<stdio.h>

int main()
{
int mon[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30,31};
int y, m, d, days;
int leap, i;
scanf("%d %d %d", &y, &m, &d);
leap = (y % 4 == 0 && y % 100 || y % 400 == 0) ? 1 : 0;
if(m>2)
{
if(leap==0)
{
for(i = 0, days = 0; i < m; i++)
{
days += mon[i];
}
printf("days=%d\n",days+d);
}

if(m > 2&&leap == 1)
{

for(i = 0, days = 0; i < m; i++)
{
days += mon[i];
}
printf("days=%d\n",days+d+1);
}
}
if(m<=2)
{

for(i = 0, days = 0; i < m; i++)
{
days += mon[i];
}
printf("days=%d\n",days+d);
}

return 0;
}

8.200~300之间不能被3整除的数,5个一行输出.

#include<stdio.h>

int main()
{
int i;
int count=0;
for(i=200;i<=300;i++)
{
    if(i%3!=0)
    {
    count++;
     if(count!=5)
     {
     printf(" %d",i);
     }
     else if(count==5)
     {
     count=0;

   printf(" %d\n",i);

    }
     

    }
}

return 0;
}

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值