C语言基础习题50例(三)11-15

CuterCorley 等级 391 0 0

C语言基础习题50例(三)11-15

你们看出神马了吗(*^_^*)

习题11

有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少

实现思路: 从第1个月起,兔子对数分别为1、1、2、3、5、8、13、21...,显然是斐波拉契数列。

代码如下:

#include<stdio.h>

int main(){
    int i, f1 = 1, f2 = 1;
    for(i = 1; i < 21; i++){
        printf("%10d%10d", f1, f2);
        f1 += f2;
        f2 += f1;
        if(i % 2 == 0){
            printf("\n");
        }
    }

    return 0;
}

打印:

         1         1         2         3
         5         8        13        21
        34        55        89       144
       233       377       610       987
      1597      2584      4181      6765
     10946     17711     28657     46368
     75025    121393    196418    317811
    514229    832040   1346269   2178309
   3524578   5702887   9227465  14930352
  24157817  39088169  63245986 102334155

习题12

. 判断101-200之间有多少个素数,并输出所有素数。

实现思路: 可以用一个函数来判断一个数是否是素数,是则输出。

代码如下:

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

int main(){
    int isPrime(int n);
    int i, count = 0;
    for(i = 100; i < 201; i++){
        if(isPrime(i)){
            printf("%6d", i);
            count++;
            if(count % 5 == 0){
                printf("\n");
            }
        }        
    }

    return 0;
}

int isPrime(int n){
    int i, prime = 1;
    for(i = 2; i <= sqrt(n); i++){
        if(n % i == 0){
            prime = 0;
            break;
        }
    }
    return prime;
}

打印:

   101   103   107   109   113
   127   131   137   139   149
   151   157   163   167   173
   179   181   191   193   197
   199

习题13

打印出所有的水仙花数。 水仙花数是指一个三位数,其各位数字立方和等于该数本身。 例如: 153是一个水仙花数,因为 153=1^3^ + 5 ^3^ + 3^3^。

实现思路: 通过函数来判断一个数是否是水仙花数,并通过循环来判断所有的数。

代码如下:

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

int main(){
    int isNarci(int n);
    int i, count = 0;
    for(i = 100; i < 1000; i++){
        if(isNarci(i)){
            printf("%6d", i);
            count++;
            if(count % 5 == 0){
                printf("\n");
            }
        }        
    }

    return 0;
}

int isNarci(int n){
    int i, j, k, temp, narci = 0;
    i = n / 100;
    temp = n % 100;
    j = temp / 10;
    k = temp % 10;
    if(n == (pow(i, 3) + pow(j, 3) + pow(k, 3))){
        narci = 1;
    }
    return narci;
}

打印:

   153   370   371   407

练习14

将一个正整数分解质因数。 例如:输入90,打印出 90=2*3*3*5。

实现思路: 使用嵌套循环,逐步分解。

代码如下:

#include<stdio.h>

int main(){
    static int i, num;
    printf("Please input a integer:\n");
    scanf("%d", &num);
    printf("%d=", num);
    while(num){
        for(i = 2; i <= num; i++){
            if(num % i == 0){
                printf("%d", i);                
                num /= i;
                if(num != 1){
                    printf("*");
                }
                break;
            }
        }
        if(num == 1){
            break;
        }
    }

    return 0;
}

打印:

Please input a integer:
120
120=2*2*2*3*5

外层还可以使用for循环,如下:

#include <stdio.h>

int main(){
    int n,i;
    printf("Please input a integer:\n");
    scanf("%d",&n);
    printf("%d=",n);
    for(i=2; i <= n; i++){
        while(n % i == 0){
            printf("%d", i);
            n /= i;
            if(n!=1){
                printf("*");
            }
        }
    }    
    printf("\n");

    return 0;
}

习题15

利用条件运算符的嵌套来完成此题: 学习成绩 >=90分的同学用A表示, 60-89分之间的用B表示, 60分以下的用C表示。

实现思路: 条件判断嵌套实现。

代码如下:

#include <stdio.h>

int main(){
    int score, i;
    char level;
    printf("Please input your scoore:\n");
    scanf("%d", &score);
    level = (score >= 90) ? 'A' : (score >= 60 ? 'B' : 'C');
    printf("Your level is %c", level);

    return 0;
}

打印:

Please input your scoore:
65
Your level is B

除了条件运算符,还可以如下:

#include <stdio.h>

int main(){
    int score, i;
    char level;
    printf("Please input your scoore:\n");
    scanf("%d", &score);
    if(score >= 60){
        if(score >= 90){
            level = 'A';
        }
        else{
            level = 'B';
        }
    }
    else{
        level = 'C';
    }
    printf("Your level is %c", level);


    return 0;
}

本文原文首发来自博客专栏C语言实战,由本人转发至https://www.helloworld.net/p/0l4speSlMtdg,其他平台均属侵权,可点击https://blog.csdn.net/CUFEECR/article/details/106454371查看原文,也可点击https://blog.csdn.net/CUFEECR浏览更多优质原创内容。

收藏
评论区

相关推荐

C++概述
概述 C 是静态,可编译,通用,大小写敏感,格式自由的编程语言,它支持程序化,面向对象的,和泛型编程方式。 C 被看作是中间层语言,因为它同时包含了低级语言和高级语言的特性。 C 是于 1979 年在新泽西的茉莉山丘的贝尔实验室由 Bjarne Stroustrup 开发的,它是 C 语言的加强版,最开始它被称作 “C with Classes”,但是
【Golang】Go入门及进阶书籍推荐
Go入门教程全集 链接: https://pan.baidu.com/s/1mWD7DpRa56WXi7WmNaohOg(https://pan.baidu.com/s/1mWD7DpRa56WXi7WmNaohOg) 提取码: ki1e Cloud.Native.Go.pdf C和指针.pdf C面向对象多线程编程.pdf Design Patt
带你掌握不一样的监控进程技术
文章目录 1.技术应用背景(about:blank1_6) 2.效果展示(about:blank2_11) 3.功能代码实现(about:blank3_18) 4.知识背景清单(about:blank4_43) 5.WMI相关概念(about:blank5WMI_70) 6.WMI相关函数(abo
C语言_练习题(一)
前言: 看懂理解代码很容易,难的是把所理解的融会贯通,融合到实例中,你会发现事实和理论会有些许差别,编写实例能更好的帮你积累经验。 0x1 编写一个程序,要求提示输入一个ASCII码值(如,66),然后打印输入的字符。 代码: include <stdio.h int main(){ char i; printf("请输入一个ASCI
C语言入门系列之3.顺序程序设计和输入输出
从程序流程的角度来看,程序可以分为三种基本结构,即顺序结构、分支结构、循环结构,这三种基本结构可以组成各种复杂程序,C语言提供了多种语句来实现这些程序结构。同时C语言提供的输入输出的函数为IO提供了方便的工具。 一、C语句介绍 1.C基本语句C程序的执行部分是由语句组成的,程序的功能也是由执行语句实现的。C语句可分为以下五类: 表达式语句表达式语句:
C语言基础习题50例(一)1-5
虎为百兽尊,罔敢触其怒。惟有父子情,一步一回顾。 习题1 有 1 、 2 、 3 、 4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?实现思路:显然,这个题目需要用到循环,并且是循环嵌套,先列出所有可能的组合,再去掉重复的组合即可。代码如下:cinclude <stdio.hint main(){ int i, j, k,
C语言基础习题50例(二)6-10
给大家推荐一门大数据Spark入门课程,希望大家喜欢。 习题6 用 号输出字母C的图案。实现思路:单行打印即可。代码如下:cinclude <stdio.h int main (void){ printf("\n"); printf("\n"); printf("\n"); printf("
C语言基础习题50例(三)11-15
你们看出神马了吗(\\^_\^\) 习题11 有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少实现思路:从第1个月起,兔子对数分别为1、1、2、3、5、8、13、21...,显然是斐波拉契数列。代码如下:cinclude<stdio.hint mai
C语言基础习题50例(四)16-20
给大家介绍一堂Python入门课,感觉还不错,适合初学者入门。 习题16 输入两个正整数 m 和 n ,求其最大公约数和最小公倍数。实现思路:求两个数的最大公约数分别采用辗转相除法、辗转相减法、枚举法得到,最小公倍数用两个数之积除以最大公约数即可获得。方式一——辗转相除法:思路:(1)将两整数求余 a%b x;(2)如果x 0;则b为最大公
C语言基础习题50例(五)21-25
你不得不学的职场高效表达训练,需要的朋友自取哟。 习题21 猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个;以后每天早上都吃了前一天剩下的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少。实现思路:采用逆向思维进行反推。代码如下:c
C语言基础习题50例(六)26-30
习题26 利用递归方法求5。实现思路:使用递归。代码如下:cinclude<stdio.hint main(){ int rec(int n); int result rec(5); printf("5 %d\n", result); return 0;}int rec(int n){ if(n 1 || n
C语言基础习题50例(七)31-35
喜提头条号黄V,有兴趣的朋友可以关注一波,主写IT领域。 习题31 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。实现思路:使用switch语句,如果第1个字母一样,则判断用情况语句或if语句判断第2个字母。也可以使用条件判断语句,实现相近。代码如下:cinclude<stdio.hint ma
C语言基础习题50例(八)36-40
习题36 求100之内的素数。实现思路:使用函数实现,并循环遍历依次判断。代码如下:cinclude <stdio.hinclude <math.h int main(){ int isPrime(int n); int i, count 0; for(i 2; i < 101; i){ if(isPrime(i)){
C语言基础习题50例(十)46-50
知足常足,终身不辱。月圆缺,水满溢,事情到了极致一定会遭受祸患,只有懂得知足,才是富足。 习题46 宏define命令练习。实现思路:宏通过define命令定义,分为无参宏和带参宏,可以分别进行测试。这只是一种简单的字符串代换。代码如下:cinclude <stdio.hdefine TRUE 1define FALSE 0
ONNX 开始
环境 基础 bashconda create n onnx python3.8 yconda activate onnx ONNX https://github.com/onnx/onnxconda install c condaforge onnx ypython c "import onnx; print(onnx.version)"pyimport