You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言循环重复实现求助:周数序列循环输出异常问题

实现日期数字循环输出的解决方案

你的需求是输入一个整数n,按顺序输出1到7循环的数字,总共有n个——比如输入3时输出1 2 3,输入10时输出1 2 3 4 5 6 7 1 2 3。现有代码的问题在于,当循环变量i超过7时,continue语句直接跳过了输出逻辑,导致后续数字无法打印。

问题分析

原代码里的if(i >7) continue;会让i=8、9、10这些值直接跳过printf,所以只输出到7就停止了。要实现1-7的循环重复,需要为每个i计算对应的循环数字,而不是跳过超出7的循环迭代。

解决方案:用取模运算实现循环

利用取模运算符%可以轻松实现循环计数逻辑。对每个循环变量i,对应的日期数字可以通过(i-1) %7 +1计算得到:

  • i=1时:(1-1)%7 +1 = 0+1=1
  • i=7时:(7-1)%7 +1=6+1=7
  • i=8时:(8-1)%7 +1=0+1=1
  • i=10时:(10-1)%7 +1=2+1=3

修改后的代码如下:

#include <stdio.h>

int main()
{
    int n;
    scanf("%d", &n);
    for( int i = 1; i <= n; i++)
    {
        // 计算当前要输出的循环数字
        int num = (i - 1) % 7 + 1;
        printf("%d ", num);
    }
 
    return 0;
}

测试验证

  • 输入3时,输出:1 2 3
  • 输入10时,输出:1 2 3 4 5 6 7 1 2 3
    完全符合需求。

内容的提问来源于stack exchange,提问作者Darwin Leonard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:50:34