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);
    }

运行结果:

相关推荐
nlpming8 分钟前
OpenClaw 代码解析
算法
学习永无止境@11 分钟前
MATLAB中矩阵转置
算法·matlab·fpga开发·矩阵
七颗糖很甜11 分钟前
雨滴谱数据深度解析——从原始变量到科学产品的Python实现【下篇】
python·算法·pandas
nlpming12 分钟前
OpenClaw system prompt定义
算法
nlpming12 分钟前
OpenClaw安装配置及简介
算法
爱码小白13 分钟前
MySQL 常用数据类型的系统总结
数据库·python·算法
玛丽莲茼蒿20 分钟前
Leetcode hot100 【中等】括号生成
算法·leetcode·职场和发展
小欣加油22 分钟前
leetcode 128 最长连续序列
c++·算法·leetcode·职场和发展
汀、人工智能35 分钟前
[特殊字符] 第94课:删除无效的括号
数据结构·算法·数据库架构·图论·bfs·删除无效的括号
pwn蒸鱼41 分钟前
leetcode:92. 反转链表 II
算法·leetcode·链表