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

运行结果:

相关推荐
凌肖战1 小时前
力扣网C语言编程题:在数组中查找目标值位置之二分查找法
c语言·算法·leetcode
weixin_478689762 小时前
十大排序算法汇总
java·算法·排序算法
luofeiju2 小时前
使用LU分解求解线性方程组
线性代数·算法
SKYDROID云卓小助手3 小时前
无人设备遥控器之自动调整编码技术篇
人工智能·嵌入式硬件·算法·自动化·信号处理
ysa0510303 小时前
数论基础知识和模板
数据结构·c++·笔记·算法
GEEK零零七3 小时前
Leetcode 1103. 分糖果 II
数学·算法·leetcode·等差数列
今天背单词了吗9804 小时前
算法学习笔记:7.Dijkstra 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·数据结构·笔记·算法
重庆小透明5 小时前
力扣刷题记录【1】146.LRU缓存
java·后端·学习·算法·leetcode·缓存
desssq5 小时前
力扣:70. 爬楼梯
算法·leetcode·职场和发展
clock的时钟6 小时前
暑期数据结构第一天
数据结构·算法