鱼C论坛

 找回密码
 立即注册
查看: 2666|回复: 3

这哪里有错啊

[复制链接]
发表于 2022-10-15 19:57:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目要求输入一个正整数n(n>10),找出1-n之间同时能被3、5和7整除的整数并打印输出。输出时每个整数占用6个字符位置,每行最多输出5个这样的数。

#include <stdio.h>
int main()
{
    int i, n, m = 0;
    scanf(
"%d",&n
);
    for (i = 1; i <= n; i++)
    {
        if (
i%3==0&&i%5==0&&i%7==0
)
            continue;
               
        printf(
"%-6d",i
);
        m++;
        if (
m%5==0
)
            printf("\n");
    }
    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-15 20:11:20 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-15 20:34 编辑

         修改版
#include <stdio.h>

int main(void)
{
        int i , n , m = 0                           ;
        scanf("%d" , & n)                           ;
        for(i = 1 ; i <= n ; i ++) {
                if(i % 3 == 0 && i % 5 == 0 && i % 7 == 0) { // 这里写 continue 几个意思??
                        printf("%-6d" , i)          ;        // 必须纳入 if
                        m ++                        ;        // 必须纳入 if
                        if(m % 5 == 0) printf("\n") ;        // 必须纳入 if
                }
        }
}
          这是我写的版本
#include <stdio.h>

int main(void)
{
        int c , d , k , n                       ;
        scanf("%d" , & n)                       ;
        for(c = 0 , d = 3 * 5 * 7 , k = d ; k < n + 1 ; k += d) {
                if(c && ! (c % 5)) printf("\n") ;
                printf("%6d" , k)               ;
                c ++                            ;
        }
        printf("\n")                            ;
}
        编译、运行实况:
D:\[00.Exerciese.2022]\C>g++ -o c c.c

D:\[00.Exerciese.2022]\C>c
200
   105

D:\[00.Exerciese.2022]\C>c
2000
   105   210   315   420   525
   630   735   840   945  1050
  1155  1260  1365  1470  1575
  1680  1785  1890  1995

D:\[00.Exerciese.2022]\C>
        看看你贴的代码,你自己愿意看吗???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-15 20:46:08 | 显示全部楼层
本帖最后由 桃花飞舞 于 2022-10-15 20:50 编辑

楼主代码已经写的很好了只是把打印输出和continue的位置写反了,
        if (i%3==0 && i%5==0 && i%7==0)
        {
                printf("%-6d",i);
                m++;
        }
条件成立是打印输出,
        
        if (i%3==0 && i%5==0 && i%7==0)
        {
                printf("%-6d",i);
                m++;
        }
        else
        {
            continue;
        } 
条件不成立是conitnue;
#include <stdio.h>

int main()
{

    int i, n, m = 0;
    scanf("%d",&n);
    for (i = 1; i <= n; i++)
    {
        if (i%3==0 && i%5==0 && i%7==0)
        {
                printf("%-6d",i);
                m++;
        }
        else
        {
            continue;
        } 

        if (m%5==0)
            printf("\n");
    }
    return 0;
}
很简单的逻辑嘛,要不楼主再看看if  和 continue的用法,建议楼主好好排版,没人愿意看着这样的代码,毕竟不是机器
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-10-16 16:52:44 From FishC Mobile | 显示全部楼层
当时没电脑,在手机上复制的,所以排版有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 03:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表