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

浙公网安备 33010602011771号