C语言 输入一个整数 判断能否被3,5,7整除 20

小白求助以下代码哪些地方错了!... 小白求助 以下代码哪些地方错了! 展开
 我来答
岔路程序缘

2019-03-29 · TA获得超过8.9万个赞
知道大有可为答主
回答量:9918
采纳率:93%
帮助的人:3379万
展开全部
因为c是字符型变量,只能存放一个字符!所以,c=c+','+'5'是无法实现你想象的结果(c='3,5')的。这是你程序语法方面的错误。
再说,c放那么多东西也没什么用处,你就让它放一个字符好了。
这样修改一下:
1、第10行改为if(c=='3')。
2、去掉11、12行。
3、第16行改为if(c=='5')。
4、去掉17、18行。
5、第21行改为if(c!='7')。
改完后你的程序尽管不是最简化、效率最高的程序(还有很多需要优化改进的地方),但是能够运行、基本功能满足题目要求了。
左冷禅2014
2019-03-29 · TA获得超过210个赞
知道小有建树答主
回答量:249
采纳率:71%
帮助的人:54.7万
展开全部

在C语言里char + char等价于使用它们的ASCII码相加,并不是字符串合并操作,合并字符串需要使用strcat实现。

#include <stdio.h>
#include <string.h>

int main()
{
   int num = 0;
   char result[100];
   printf("请输入一个正数");
   scanf("%d", &num);
   if (num <= 0) {
   printf("必须输入正数");
   return 1;
   }

   if (num % 3 == 0) {
       strcat(result, "3 ");  
   }
   
   if (num % 5 == 0) {
  strcat(result, "5 ");   
   }

   if (num % 7 == 0) {
  strcat(result, "7 ");   
   }

   if (strlen(result)) {
    printf("%d can be divided by %s", num, result);
   } else {
printf("%d can't be divided by 3 or 5 or 7!\n", num);   
   }
   
   return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qzhao_1
2019-03-29 · TA获得超过2.4万个赞
知道大有可为答主
回答量:2.4万
采纳率:76%
帮助的人:4268万
展开全部
这个程序的设计思路非常简单:由于3、5、7均为素数,故能够同时被3、5、7整除的必定是它们的最小公倍数。即:3*5*7=105。因此只需要判断该整数是否能够被 105 整除即可。源程序如下:
#include <stdio.h>
{
int num ;

printf("Please input a integer:\n") ;

scanf("%d",&num) ;

if( ( num % 105 ) == 0 )

printf("%d is can be divided by 3 5 7\n" ) ;

else

printf("%d is can not be divided by 3 5 7\n" ) ;

}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-03-29
展开全部
#include <stdio.h>        
    
int main() {   
    int a;     
    printf("输入一个整数:");      
    scanf("%d", &a);      
    
    if ((a % 3) == 0 && (a % 5) == 0 && (a % 7) == 0) {  
        printf("cannot be divided by 3, 5, 7\n");        
    } else {   
        printf("%d can be divided by 3, 5, 7\n", a);     
    }          
     
    return 0;  
}

这样是判断输入这个数可以被 3 5 7 整除的

c 只是一个普通的字符,只能存一个字符,你那个 + 会变成整数的值加,想改了,c变成字符串 

char c[100]

然后把值放到字符串中 strcat

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2ebe1e4f3
2019-03-29 · TA获得超过1.3万个赞
知道大有可为答主
回答量:9245
采纳率:52%
帮助的人:3234万
展开全部
语法应该没问题,逻辑似乎混乱了,其实没必要这么复杂,只要分别做三次独立的判断就可以了:
if(a%3)printf("能被3整除");
if(a%5)printf("能被5整除");
if(a%7)printf("能被7整除");
从输出结果可看出能被哪些数整除,如果没有输出就是都不能整除。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式