鱼C论坛

 找回密码
 立即注册
查看: 1412|回复: 10

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

[复制链接]
发表于 2020-10-18 21:50:27 | 显示全部楼层 |阅读模式

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

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

x
输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一:
(1)能同时被3,5,7整除;
(2)能被其中两数整除(要指出哪两个)整除;
(3)能被其中一个数整除(要指出哪一个)整除;
(4)不能被3,5,7任一个整除。
最佳答案
2020-10-19 10:50:01
本帖最后由 xieglt 于 2020-10-19 10:56 编辑

  1. #include <stdio.h>


  2. int main()
  3. {
  4.         int num = 0;
  5.         int flag = 0;
  6.         int i = 0;
  7.         int arr[] = {3,5,7};
  8.         char msg[64] = "%d can be divided without remainder by ";
  9.         char temp[12] = {0};

  10.         printf("Input a number:");
  11.         scanf("%d",&num);
  12.        
  13.         for(i = 0 ; i < 3 ; i ++)
  14.         {
  15.                 if(num % arr[i] == 0)
  16.                 {
  17.                         if(flag == 0)
  18.                         {
  19.                                 sprintf(temp,"%d",arr[i]);
  20.                         }
  21.                         else
  22.                         {
  23.                                 sprintf(temp,",%d",arr[i]);
  24.                         }
  25.                         sprintf(msg,"%s%s",msg,temp);
  26.                         flag = 1;
  27.                 }
  28.         }

  29.         if(flag == 1)
  30.         {
  31.                 sprintf(msg,"%s\n",msg);
  32.                 printf(msg,num);
  33.         }
  34.         else
  35.         {
  36.                 printf("%d can't be divided by 3,5,7\n",num);
  37.         }
  38.     return 0;
  39. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-19 08:33:10 | 显示全部楼层
仔细想想,这题不难
就&&和||,还有%取余的用法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-19 10:50:01 | 显示全部楼层    本楼为最佳答案   
本帖最后由 xieglt 于 2020-10-19 10:56 编辑

  1. #include <stdio.h>


  2. int main()
  3. {
  4.         int num = 0;
  5.         int flag = 0;
  6.         int i = 0;
  7.         int arr[] = {3,5,7};
  8.         char msg[64] = "%d can be divided without remainder by ";
  9.         char temp[12] = {0};

  10.         printf("Input a number:");
  11.         scanf("%d",&num);
  12.        
  13.         for(i = 0 ; i < 3 ; i ++)
  14.         {
  15.                 if(num % arr[i] == 0)
  16.                 {
  17.                         if(flag == 0)
  18.                         {
  19.                                 sprintf(temp,"%d",arr[i]);
  20.                         }
  21.                         else
  22.                         {
  23.                                 sprintf(temp,",%d",arr[i]);
  24.                         }
  25.                         sprintf(msg,"%s%s",msg,temp);
  26.                         flag = 1;
  27.                 }
  28.         }

  29.         if(flag == 1)
  30.         {
  31.                 sprintf(msg,"%s\n",msg);
  32.                 printf(msg,num);
  33.         }
  34.         else
  35.         {
  36.                 printf("%d can't be divided by 3,5,7\n",num);
  37.         }
  38.     return 0;
  39. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-19 15:18:09 | 显示全部楼层
本帖最后由 风过无痕1989 于 2020-10-19 19:33 编辑
  1. // 输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一:
  2. // (1)能同时被3,5,7整除;
  3. // (2)能被其中两数整除(要指出哪两个)整除;
  4. // (3)能被其中一个数整除(要指出哪一个)整除;
  5. // (4)不能被3,5,7任一个整除。

  6. #include<stdio.h>

  7. int main()

  8. {
  9.         int num;
  10.         scanf("%d",&num);
  11.         if(num % 3 == 0 && num && num % 5 == 0 && num % 7 == 0)
  12.         {
  13.             printf("%d 能同时被 3 和 5 及 7 整除\n",num);
  14.         }
  15.         else if(num % 3 == 0 && num && num % 5 == 0)
  16.         {
  17.             printf("%d 能同时被 3 和 5 整除\n",num);
  18.         }
  19.         else if(num % 3 == 0 && num && num % 7 == 0)
  20.         {
  21.             printf("%d 能同时被 3 和 7 整除\n",num);
  22.         }
  23.         else if(num % 5 == 0 && num && num % 7 == 0)
  24.         {
  25.             printf("%d 能同时被 5 和 7 整除\n",num);
  26.         }
  27.         else if(num % 3 == 0)
  28.         {
  29.             printf("%d 能被 3 整除\n",num);
  30.         }
  31.         else if(num % 5 == 0)
  32.         {
  33.             printf("%d 能被 5 整除\n",num);
  34.         }
  35.         else if(num % 7 == 0)
  36.         {
  37.             printf("%d 能被 7 整除\n",num);
  38.         }
  39.         else
  40.         {
  41.         printf("%d 不能被 3 和 5 及 7 整除\n",num);
  42.         }

  43. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-19 15:22:11 | 显示全部楼层
巴巴鲁 发表于 2020-10-19 08:33
仔细想想,这题不难
就&&和||,还有%取余的用法

兄弟,本来你的答案已经是最佳答案,我今天早上看到都没有回帖了,可是,我现在不弄个完整的符合题意的最佳答案出来,年面还会。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

没事,我只是想让楼主思考一下
另外你的代码goto可以不用写的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

不写不行,会第49行直接输出的,我是在运行正确的情况下再发出来的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

那再else一次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-19 19:31:24 | 显示全部楼层

嗯,这倒是可以,接受你的建议,我这就去改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

这种授人渔的方式,赞你一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-21 14:02:08 | 显示全部楼层
现在弄明白了问题吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 03:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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