一碗彤 发表于 2020-10-18 21:50:27

大一c语言小白,求大佬解决下问题,嘻嘻嘻

输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一:
(1)能同时被3,5,7整除;
(2)能被其中两数整除(要指出哪两个)整除;
(3)能被其中一个数整除(要指出哪一个)整除;
(4)不能被3,5,7任一个整除。

巴巴鲁 发表于 2020-10-19 08:33:10

仔细想想,这题不难
就&&和||,还有%取余的用法

xieglt 发表于 2020-10-19 10:50:01

本帖最后由 xieglt 于 2020-10-19 10:56 编辑


#include <stdio.h>


int main()
{
        int num = 0;
        int flag = 0;
        int i = 0;
        int arr[] = {3,5,7};
        char msg = "%d can be divided without remainder by ";
        char temp = {0};

        printf("Input a number:");
        scanf("%d",&num);
       
        for(i = 0 ; i < 3 ; i ++)
        {
                if(num % arr == 0)
                {
                        if(flag == 0)
                        {
                                sprintf(temp,"%d",arr);
                        }
                        else
                        {
                                sprintf(temp,",%d",arr);
                        }
                        sprintf(msg,"%s%s",msg,temp);
                        flag = 1;
                }
        }

        if(flag == 1)
        {
                sprintf(msg,"%s\n",msg);
                printf(msg,num);
        }
        else
        {
                printf("%d can't be divided by 3,5,7\n",num);
        }
    return 0;
}

风过无痕1989 发表于 2020-10-19 15:18:09

本帖最后由 风过无痕1989 于 2020-10-19 19:33 编辑

// 输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一:
// (1)能同时被3,5,7整除;
// (2)能被其中两数整除(要指出哪两个)整除;
// (3)能被其中一个数整除(要指出哪一个)整除;
// (4)不能被3,5,7任一个整除。

#include<stdio.h>

int main()

{
      int num;
        scanf("%d",&num);
        if(num % 3 == 0 && num && num % 5 == 0 && num % 7 == 0)
        {
          printf("%d 能同时被 3 和 5 及 7 整除\n",num);
        }
        else if(num % 3 == 0 && num && num % 5 == 0)
        {
          printf("%d 能同时被 3 和 5 整除\n",num);
        }
        else if(num % 3 == 0 && num && num % 7 == 0)
        {
          printf("%d 能同时被 3 和 7 整除\n",num);
        }
        else if(num % 5 == 0 && num && num % 7 == 0)
        {
          printf("%d 能同时被 5 和 7 整除\n",num);
        }
        else if(num % 3 == 0)
        {
          printf("%d 能被 3 整除\n",num);
        }
        else if(num % 5 == 0)
        {
          printf("%d 能被 5 整除\n",num);
        }
        else if(num % 7 == 0)
        {
          printf("%d 能被 7 整除\n",num);
        }
      else
      {
        printf("%d 不能被 3 和 5 及 7 整除\n",num);
      }

}

风过无痕1989 发表于 2020-10-19 15:22:11

巴巴鲁 发表于 2020-10-19 08:33
仔细想想,这题不难
就&&和||,还有%取余的用法

兄弟,本来你的答案已经是最佳答案,我今天早上看到都没有回帖了,可是,我现在不弄个完整的符合题意的最佳答案出来,年面还会。。。。。。

巴巴鲁 发表于 2020-10-19 19:06:56

风过无痕1989 发表于 2020-10-19 15:22
兄弟,本来你的答案已经是最佳答案,我今天早上看到都没有回帖了,可是,我现在不弄个完整的符合题意的最 ...

没事,我只是想让楼主思考一下
另外你的代码goto可以不用写的

风过无痕1989 发表于 2020-10-19 19:12:48

巴巴鲁 发表于 2020-10-19 19:06
没事,我只是想让楼主思考一下
另外你的代码goto可以不用写的

不写不行,会第49行直接输出的,我是在运行正确的情况下再发出来的

巴巴鲁 发表于 2020-10-19 19:29:48

风过无痕1989 发表于 2020-10-19 19:12
不写不行,会第49行直接输出的,我是在运行正确的情况下再发出来的

那再else一次{:10_256:}

风过无痕1989 发表于 2020-10-19 19:31:24

巴巴鲁 发表于 2020-10-19 19:29
那再else一次

嗯,这倒是可以,接受你的建议,我这就去改

乐乐学编程 发表于 2020-10-19 23:52:26

巴巴鲁 发表于 2020-10-19 19:06
没事,我只是想让楼主思考一下
另外你的代码goto可以不用写的

这种授人渔的方式,赞你一个

风过无痕1989 发表于 2020-10-21 14:02:08

现在弄明白了问题吗?
页: [1]
查看完整版本: 大一c语言小白,求大佬解决下问题,嘻嘻嘻