1.2作业

1.输入一个数,计算是否是完美数

完美数:除本身约数和等于本身

6:1 2 3

1+2+3==6

代码如下:

#include<stdio.h>

int main(int argc, const char *argv[])
{
    int num,i,sum=0;
    printf("please enter number:");
    scanf("%d",&num);//输入一个数
    for(i=1;i<num;i++)//循环次数等于输入的数
    {
        if(num%i==0)//判断是否为约数
            sum+=i;//将除本身的约数求和
    }
    if(sum==num)//判断和是否等于本身
        printf("%d is perfect number\n",num);
    else
        printf("%d is not perfect number\n",num);
    return 0;
}
 

2.课堂案例:

2.1 输入一个数,判断是否是素数

代码如下:
#include<stdio.h>
#include<math.h>
int main(int argc, const char *argv[])
{

int num,i;
    printf("please enter number:");
    scanf("%d",&num);//输入一个数
    int count=0;
    for(i=2;i<=sqrt(num);i++)
    {
        if(num%i==0)//判断是否能被i整除
        {
            count++;
        }

    }
    if(count==0&&num!=1)//count等于0表示该数只能被1与本身整除且不包括1
        printf("%d is prime\n",num);
    else
        printf("%d is not prime\n",num);
    return 0;
}
测试结果:

2.2 实现图形打印(四个图片)

图片1:

代码如下:

#include<stdio.h>

int main(int argc, const char *argv[])
{
    int i,j;
    for(i=1;i<=4;i++)//外表行
    {
        for(j=1;j<=i;j++)//内表列,j=i
        {
            printf("*");
        }
            printf("\n");
    }
    return 0;
}
结果如下:

图片2:

代码如下:

#include<stdio.h>

int main(int argc, const char *argv[])
{
    int i,j;
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=5-i;j++)//j=4+1-i
        {
            printf("*");
        }
            printf("\n");
    }
    return 0;
}
结果如下:

图片三:

代码如下:

#include<stdio.h>

int main(int argc, const char *argv[])
{
    int i,j;
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=5-i;j++)//空格的图案为倒三角
        {
            printf(" ");
        }
        for(j=1;j<=i;j++)//*的图案为正三角
        {
            printf("*");
        }
            printf("\n");

    }
    
    return 0;
}
结果如下:

图片四:

代码如下:

#include<stdio.h>

int main(int argc, const char *argv[])
{
    int i,j;
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=i;j++)//空格的图案为正三角
        {
            printf(" ");
        }
        for(j=1;j<=5-i;j++)//*的图案为倒三角
        {
            printf("*");
        }
            printf("\n");

    }
    
    return 0;
}
结果如下:

2.3 练习穷举算法:百钱买百鸡

代码如下:

#include<stdio.h>

int main(int argc, const char *argv[])
{
    int x,y,z;
    for(x=0;x<=20;x++)//公鸡最多为20个
    {
        for(y=0;y<=33;y++)//母鸡最多为33个
        {
            for(z=0;z<=100;z++)//雏鸡最多为100个
            {
                if(5*x+3*y+z/3==100&&x+y+z==100&&z%3==0)//总价为100,总数为100,且雏鸡的个数为3的倍数
                    printf("x=%d y=%d z=%d\n",x,y,z);
            }
        }
    }
    return 0;
}
测试结果:

2.4 输入一个数判断回文数

代码如下:

#include<stdio.h>

int main(int argc, const char *argv[])
{  

    int num,sum=0,a;
    printf("please enter number:");
    scanf("%d",&num);
    a=num;
    while(a!=0)//直到a=0时退出循环
    {
        sum=sum*10+a%10;//将各个位数倒序
        a/=10;

    }
    if(sum==num)//判断是否为回文数
    {
        printf("Yes\n");
    }
    else
        printf("No\n");
        return 0;

}

测试结果:

2.5 输入一个数,计算各个数字之和

#include<stdio.h>

int main(int argc, const char *argv[])
{

    int num,sum=0;
    printf("please enter number:");
    scanf("%d",&num);//输入一个数
    while(num!=0)//直到该数为0时停止
    {
        sum+=num%10;//取出各个位数并求和
        num/=10;
    }
    printf("sum=%d\n",sum);

        return 0;
}
 


测试结果:

思维导图:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值