C基础日常练习2024-7-16

第一题:求1000以内所有的质数。质数:只能够1和它本身整除

#include <stdio.h>                     

int main() {
    printf("1000 以内的质数:\n");
    int num = 2;
    while (num <= 1000) {
        int isPrime = 1;
        int i = 2;
        while (i * i <= num) {
            if (num % i == 0) {
                isPrime = 0;
                break;
            }
            i++;
        }
        if (isPrime) {
            printf("%d\n ", num);
        }
        num++;
    }
    return 0;
}
                                       

第二题:有1.2.3. 4 个数字, 能组成多少 重复数字的三位数?都是多少?

 #include <stdio.h>
 
 int main(int argc, const char *argv[])
 {
     for(int i = 1;i < 5;i++)
     {
         for(int j = 1;j < 5;j++)
         {
             for(int k = 1;k < 5;k++)
             {
                 if(i != j && i != k && j != k )
                 {
                     printf("%d%d%d\n",i,j,k);
                 }
             }
         }
     }
     return 0;
 }                                                

第三题:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃 了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上 都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子 了。求第一天共摘了多少。 结果:peach=1534

 #include <stdio.h>
 
 int main(int argc, const char *argv[])
 {
     int num = 1;
     for(int i = 1;i<10;i++)
     {
         num = (num + 1) * 2;
     }
     printf("最开始一共有%d个桃子\n",num);   
     return 0;
 }

第四题:99乘法表

 #include <stdio.h>
 
 int main(int argc, const char *argv[])
 {
     for(int i = 1;i < 10;i++)
     {
         for(int j = 0;j < i;j++)
         {
             printf("%d * %d = %d\t",j+1,i,i*(j+1));
         }
         printf("\n");
     }                                                  
     return 0;
 }

第五题:

        完全平方数 在1万以内(不包含1万)查找整数, 该整数它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少?

        b.完全平方数:完全平方指用一个整数乘以自己例如1*1,2*2,3*3等。所以 1,4,9都是完全平方数。 10不是完全平方数,因为10号开根后不是整数

        开根号 sqrt(); sqrt(2)--->对2开根号 使用使用sqrt函数,需要包含:#include<math.h> 编译的时候需要加上 -lm, 例如:gcc 1.c -lm 结果:21 261 1581

 #include <stdio.h>
 #include <math.h>
 
 int main(int argc, const char *argv[])
 {
     int num;
     for(num = 0;num<10001;num++)
     {
         if((int)sqrt(num+100) * (int)sqrt(num+100) == (num +100) && (int)sqrt(num+100+168) * (int)sqrt(num+100+168) == (num + 100 +168))
         {
             printf("该数是%d\n",num);
         }
     }
     return 0;
 }                                                                                                                                        

第六题:

        有一分数序列:211 312513815 1318 21113... 求出这个数列的前 20 项之和。 答案:结果:32.6603

        ps:当前项的分子是下一项的分母,下一项的分子是当前项的分子+分母。

 #include <stdio.h>
 
 int main(int argc, const char *argv[])
 {
     float num = 0, fenzi = 1,fenmu = 1,temp = 0;
     for(int i = 1;i<21;i++)
     {
         temp = fenzi + fenmu;
         fenmu = fenzi;
         fenzi = temp;
         num += fenzi / fenmu;
     }
     printf("%g",num);
     return 0;
 }                                                         
                                                           

第七题:

        从终端输入一个整数,要求将该整数进行翻转。 例如输入123,要求输出321(三百二十-) 。输入-123,要求输出-321。不考虑翻转后溢出的情况

#include <stdio.h>

int main(int argc, const char *argv[])
{
    printf("请输入一个整数:\n");
    int num,s_num;
    scanf("%d",&num);
    s_num = num<0?-num:num;
    int num_bai,num_shi,num_ge;
    num_bai = s_num / 100;
    num_shi = s_num /10 % 10;
    num_ge = s_num % 10;
    if(num>0)
    {
        printf("%d%d%d\n",num_ge,num_shi,num_bai);
    }
    else
    {
        printf("-%d%d%d\n",num_ge,num_shi,num_bai);
    }
    return 0;
}                                                               
                                                                

第八题:

         定义一个无符号的整型数组,求数组中的最大值。 思路:int a1=10,a2=20,a3=5;两两相比,求最大值。

#include <stdio.h>

int main(int argc, const char *argv[])
{
    unsigned int arr[5] = {0};
    printf("请输入(5个数):\n");
    for(int i = 0;i<5;i++)
    {
        scanf("%d",&arr[i]);
        printf("%u\n",arr[i]);
    }
    int temp;
    for(int i = 0;i<4;i++)
    {
        if(arr[i]>arr[i+1])
        {
            temp = arr[i];
            arr[i] = arr[i+1];
            arr[i+1] = temp;
        }
    }
    printf("最大的数是=%d\n",arr[4]);
    return 0;
}                                              

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值