c语言题,求大神给做法。。

如题所述

思路:
每个输入的数有三个属性,即是否能够被3、5、7整除
目标是要将输入的数,按照这些属性进行统计(不明白 输出其个数 是什么含义)
示例代码:
#include <stdio.h>
#include <stdlib.h>

typedef struct _data_{
int key;

bool canbedvide[3];//第一个表示能否被3整除 第二个表示能否被5整除 第三个表示能否被7整除

}DATA;
int main()
{
int n=0;

while(n>=0){//输入一个负数结束整个过程

printf("输入一个整数:\n");

scanf("%d",&n);

if(n>=0){

DATA data = {//初始化数据属性
n,
(n%3)==0,//能否被3整除 true表示可以,false表示不可以
(n%5)==0,//能否被5整除 true表示可以,false表示不可以
(n%7)==0//能否被7整除 true表示可以,false表示不可以
};

if(data.canbedvide[0] || data.canbedvide[1]||data.canbedvide[2])
{//只要至少有一个可以整除,则进行下面的判断

printf("可以被");

if(data.canbedvide[0])printf("3 ");//指出是否能被3整除
if(data.canbedvide[1])printf("5 ");//指出是否能被5整除
if(data.canbedvide[2])printf("7 ");//指出是否能被7整除
printf("整除\n");

}else{//全部都不能整除

printf("不可以被3、5、7中的任何一个整除\n");

}

}

}

return 0;

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-18
#include<stdio.h>
void main()
{
 int i;
 printf("请输入一个整数:");
 scanf("%d",&i);
if(i%3==0&&i%5==0&&i%7==0) printf("能被3、5、7三个数整除!\n");
else if(i%3==0&&i%5==0&&i%7!=0) printf("能被3、5两个数整除,不能被7整除!\n");
else if(i%3==0&&i%5!=0&&i%7==0) printf("能被3、7两个数整除,不能被5整除!\n");
else if(i%3!=0&&i%5==0&&i%7==0) printf("能被5、7两个数整除,不能被3整除!\n");
else if(i%3==0&&i%5!=0&&i%7!=0) printf("能被3一个数整除,不能被5、7整除!\n");
else if(i%3!=0&&i%5==0&&i%7!=0) printf("能被5一个数整除,不能被3、7整除!\n");
else if(i%3!=0&&i%5!=0&&i%7==0) printf("能被7一个数整除,不能被3、5整除!\n");
else printf("不能被3、5、7三个数整除!\n");
}

本回答被提问者和网友采纳
第2个回答  2015-12-29
1楼对的
相似回答