C语言练习四(vscode)循环语句专练

一、用循环验证用户输入的数字

cpp 复制代码
#include<stdio.h>
int main(){
    int num;
    printf("请您猜一个正整数:");
    scanf("%d",&num);

    while (num>=0&&num<=100)
    {
        if (num==65)
        {
            printf("恭喜您猜对了。");
            break;
        }else{
            printf("您猜错了。请继续:");
            scanf("%d",&num);
        }  
    } 
   }

运行结果:

二、打印出1到1000以内能被3整除的数字

cpp 复制代码
#include<stdio.h>
int main() {
    int a = 1, j = 0;
    while (a > 0 && a <= 1000) {
        if (a % 3 == 0) {
            printf("%4d ", a);
            j++;
            if (j >= 5) {
                j = 0;
                printf("\n");
            }
        }
        a++;
    }
    return 0;
}

运行结果:

三、简单统计输入数的个数(用户可以无限次输入数字,请统计输入数字的正数个数,负数个数,0的个数,当用户输入999时程序结束。)

cpp 复制代码
#include<stdio.h>
int main() {
    int num;
    int positive = 0, negative = 0, zero = 0;

    while (1) {
        scanf("%d", &num);
        if (num == 999) {
            break;
        }
        if (num > 0) {
            positive++;
        } else if (num < 0) {
            negative++;
        } else {
            zero++;
        }
    }

    printf("正数个数:%d\n负数个数:%d\n零的个数:%d\n", positive, negative, zero);
    return 0;
}

运行结果:

四、阶乘的计算

cpp 复制代码
#include<stdio.h>
int main(){
        int n,i=1,sum=1;
        printf("请输入一个数字:");
        scanf("%d",&n);
        while (i<=n)
        {
            sum=sum*i;
            i++;            
        }
        printf("%d的阶乘为:%d",n,sum);   
    }

运行结果:

五、编写一个程序,让用户输入一个数,然后计算该数各个位数的和。

cpp 复制代码
#include<stdio.h>
int main(){
        int a,b,sum;
        printf("请输入一个正整数:");
        scanf("%d",&a);
        b=a;
        while (a>0)
        {
            sum+=a%10;
            a/=10;
        }
        printf("%d的各位的和为:%d",b,sum);
        
    }

运行结果:

六、打印菱形

cpp 复制代码
#include<stdio.h>
int main(){  //i--行   j--列
        for (int i = 1; i < 6; i++)  
        {
            printf("\n");
            for (int k = 0; k < 5-i; k++)// 空格
            {
            printf(" ");
            } 
            for (int j = 0; j<2*i-1; j++)// *号
            {
            printf("*");
            }            
        }
        
        for (int i = 4; i > 0; i--)  
        {
            printf("\n");
            for (int k = 0; k < 5-i; k++)// 空格
            {
            printf(" ");
            } 
            for (int j = 0; j<2*i-1; j++)// *号
            {
            printf("*");
            }            
        }
    }

运行结果:

七、一个球从100米高度自由落下,每次落地后反弹回原高度的一半;再落下,求在第几次之后反弹高度小于0.1米,并计算在这一次落地时共经过多少米?

cpp 复制代码
#include<stdio.h>
int main(){ 
        double sum=100;
        double c=1;   //次数
        for (double h = 50; h > 0.1; h/=2.0)  //反弹高度
        {
                sum = 2*h + sum;
                c++;
        }  
        printf("在第%.0f次之后反弹高度小于0.1米,并计算在这一次落地时共经过%.2f米",c,sum);
    }

运行结果:

相关推荐
GGBondlctrl14 分钟前
【leetcode】递归,回溯思想 + 巧妙解法-解决“N皇后”,以及“解数独”题目
算法·leetcode·n皇后·有效的数独·解数独·映射思想·数学思想
武子康26 分钟前
大数据-276 Spark MLib - 基础介绍 机器学习算法 Bagging和Boosting区别 GBDT梯度提升树
大数据·人工智能·算法·机器学习·语言模型·spark-ml·boosting
武子康29 分钟前
大数据-277 Spark MLib - 基础介绍 机器学习算法 Gradient Boosting GBDT算法原理 高效实现
大数据·人工智能·算法·机器学习·ai·spark-ml·boosting
Andrew_Xzw1 小时前
数据结构与算法(快速基础C++版)
开发语言·数据结构·c++·python·深度学习·算法
超的小宝贝2 小时前
数据结构算法(C语言)
c语言·数据结构·算法
木子.李3478 小时前
排序算法总结(C++)
c++·算法·排序算法
闪电麦坤959 小时前
数据结构:递归的种类(Types of Recursion)
数据结构·算法
Gyoku Mint10 小时前
机器学习×第二卷:概念下篇——她不再只是模仿,而是开始决定怎么靠近你
人工智能·python·算法·机器学习·pandas·ai编程·matplotlib
纪元A梦10 小时前
分布式拜占庭容错算法——PBFT算法深度解析
java·分布式·算法