C 程序:从1到N循环报数,输出M的倍数

问题:用户输入 M,N 值。从 1 至 N 开始顺序额环数数。每数到 M 的倍数输出该数值,直至全都输出。写出C程序。

 *
 *	file name:  circle_count.c
 *	author	 :  aino_d@163.com
 *	date	 :  2025/06/05
 *	function :  该程序实现报数游戏,给定两个整数M和N,输出从1到N中所有M的倍数。
 * 	note	 :  该程序使用循环和条件判断来实现报数游戏的逻辑,确保输出的数字是M的倍数,并且不重复输出。
 *
 *	CopyRight (c)  2024-2025   aino_d@163.com   All Right Reseverd
 *
 * ******************************************************************************************************/

#include <stdio.h>
#include <stdbool.h>

int main()
{
    int M, N;
    printf("请输入M和N的值\n");
    scanf("%d\n", &M);
    scanf("%d", &N);

    // 标记数组,用于记录哪些M的倍数已被输出
    bool printed[N + 1]; // 下标从1到N
    for (int i = 0; i <= N; ++i)
    {
        printed[i] = false;
    }

    int count = 0; // 计数器,记录已输出的个数
    int index = 1; // 当前报数的位置

    while (count < N / M)
    { // 总共会有 N/M 个M的倍数
        if (index > N)
        {
            index = 1; // 超过N就从1重新开始
        }

        if (index % M == 0 && !printed[index])
        {
            printf("%d ", index);
            printed[index] = true;
            count++;
        }

        index++;
    }

    printf("\n");
    return 0;
}
posted @ 2025-07-18 08:32  Aino_D  阅读(44)  评论(0)    收藏  举报