大一c语言小白,求大佬解决下问题,嘻嘻嘻
输入一个整数,判断它能否被3,5,7整除,并输出以下信息之一:(1)能同时被3,5,7整除;
(2)能被其中两数整除(要指出哪两个)整除;
(3)能被其中一个数整除(要指出哪一个)整除;
(4)不能被3,5,7任一个整除。 仔细想想,这题不难
就&&和||,还有%取余的用法 本帖最后由 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 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);
}
} 巴巴鲁 发表于 2020-10-19 08:33
仔细想想,这题不难
就&&和||,还有%取余的用法
兄弟,本来你的答案已经是最佳答案,我今天早上看到都没有回帖了,可是,我现在不弄个完整的符合题意的最佳答案出来,年面还会。。。。。。 风过无痕1989 发表于 2020-10-19 15:22
兄弟,本来你的答案已经是最佳答案,我今天早上看到都没有回帖了,可是,我现在不弄个完整的符合题意的最 ...
没事,我只是想让楼主思考一下
另外你的代码goto可以不用写的 巴巴鲁 发表于 2020-10-19 19:06
没事,我只是想让楼主思考一下
另外你的代码goto可以不用写的
不写不行,会第49行直接输出的,我是在运行正确的情况下再发出来的 风过无痕1989 发表于 2020-10-19 19:12
不写不行,会第49行直接输出的,我是在运行正确的情况下再发出来的
那再else一次{:10_256:} 巴巴鲁 发表于 2020-10-19 19:29
那再else一次
嗯,这倒是可以,接受你的建议,我这就去改 巴巴鲁 发表于 2020-10-19 19:06
没事,我只是想让楼主思考一下
另外你的代码goto可以不用写的
这种授人渔的方式,赞你一个 现在弄明白了问题吗?
页:
[1]