c语言:帮我写这个代码,必采纳

如题所述

代码如下,图片所示是运行输入20个数时的结果,程序中已改为100个数,如需修改输入的个数, 只需修改N和num[]中的数即可。望采纳。


#include <stdio.h>


int main()

{

    int N = 100;

    int num[100];

    int sum = 0, i = 0;

    double result;

    printf("请输入%d个整数:", N);

    for(i = 0; i < N; i++)

    {

        scanf("%d", &num[i]);

        if(num[i] % 3 == 0 || num[i] % 5 == 0)

        {

            sum++;

        }

    }

    result= ((double)sum / N) * 100;


    printf("这些数中能被3或5整除的数所占百分比为%.2f %%\n", result);


    return 0;


}

追问

解释一下每一步,谢谢

懂了就采纳

追答

不好意思,回答的晚了些
#include

int main()
{
int N = 100;//输入的数字个数
int num[100];//定义一个数组,[ ]中为该数组的个数
int sum = 0, i = 0;//sum用来统计能被3或5整除的数的个数,i是循环变量
double result;//result用来保存化出的百分比的
printf("请输入%d个整数:", N);

for(i = 0; i < N; i++)
{
scanf("%d", &num[i]);//输入一个数
if(num[i] % 3 == 0 || num[i] % 5 == 0)//判断能否被3或5整除
{
sum++;//能,则sum计数+1
}
}

result= ((double)sum / N) * 100;//计算百分比

printf("这些数中能被3或5整除的数所占百分比为%.2f %%\n", result);

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-22
#include<stdio.h>
int main(){
int input_cnt;
int div5, div3;
div5 = div3 = 0;
for (input_cnt = 0; input_cnt < 100; ++input_cnt){
int tmp;
scanf("%d", &tmp);
if (tmp % 3 == 0)
++div3;
if (tmp % 5 == 0)
++div5;
}
printf("The numbers can be divisible by 3: %d%%\n",div3);
printf("The numbers can be divisible by 5: %d%%\n", div5);
return 0;

}

追问

能不能解释一下每一步

追答//额,如果是同时整除3和5的话。需要修改
#include<stdio.h>
int main(){
    int input_cnt;    //记录输入次数
    int div5, div3,div;    //记录能整除5和3的数的个数。
    div = div5 = div3 = 0;   //变量初始化
    for (input_cnt = 0; input_cnt < 100; ++input_cnt){//循环input_cnt次
        int tmp;
        scanf("%d", &tmp);    //输入数字
        if (tmp % 3 == 0)    //这个数字能被3整除的话
            ++div3;            //自增,同div3 = div3 + 1;
        if (tmp % 5 == 0)    //能被5整除的话
            ++div5;
        if(tmp % 5 == 0||tmp % 3 == 0)    //被3或者5整除
            ++div;                
    }
    printf("The numbers can be divisible by 3: %d%%\n",div3);                    //打印,因为是100个数字直接输出百分百即可,不需要计算,能被3整除的百分百
    printf("The numbers can be divisible by 5: %d%%\n", div5);                    //打印能被5整除的百分百
     printf("The numbers can be divisible by 3 or 5: %d%%\n", div);             //打印能被3或者5整除的百分百
    return 0;
 
}

追问

这个代码输入2个数字就不行了

你再想想

追答

??原题是要求输入100个整数啊。。2个怎么可能。。你题读错了吧

//变量名有误。已修改
#include<stdio.h>
int main(){
    int input_cnt;    //记录输入次数
    int div5, div3,div3_or_5;    //记录能整除5和3的数的个数。
    div3_or_5 = div5 = div3 = 0;   //变量初始化
    for (input_cnt = 0; input_cnt < 100; ++input_cnt){//循环input_cnt次
        int tmp;
        scanf("%d", &tmp);    //输入数字
        if (tmp % 3 == 0)    //这个数字能被3整除的话
            ++div3;            //自增,同div3 = div3 + 1;
        if (tmp % 5 == 0)    //能被5整除的话
            ++div5;
        if(tmp % 5 == 0||tmp % 3 == 0)    //被3或者5整除
            ++div3_or_5;                
    }
    printf("The numbers can be divisible by 3: %d%%\n",div3);                    //打印,因为是100个数字直接输出百分百即可,不需要计算,能被3整除的百分百
    printf("The numbers can be divisible by 5: %d%%\n", div5);                    //打印能被5整除的百分百
     printf("The numbers can be divisible by 3 or 5: %d%%\n", div3_or_5);             //打印能被3或者5整除的百分百
    return 0;
  
}

本回答被网友采纳