(c语言)随机输入一组整数直到输入能与11整除的数则停止输入

img


随机输入一组数直到输入能与11整除的数则停止输入,请统计输入数据中所有能和3整除的正整数的和及其均值。



int main()
{
    int n, sum = 0, cnt = 01;
    while (1)
    {
        scanf("%d", &n);
        if (n % 11 == 0)
            break;
        if (n > 0 && n % 3 == 0)
        {
            sum += n;
            cnt++;
        }
    }
    printf("%d  %f", sum, 1.0 * sum / cnt);

   return 0;
}

我的思路是:

1、首先定义,存储能被3整除的正整数的和与平均值的变量,其数量的变量,以及存储输入的每个整数的变量;

2、如果输入的数不能被11整除,则循环获取整数输入,并计算能被3整除的正整数的和及其数量;

3、当遇到能被11整除的的数时,同时循环,计算能被3整除的正整数的平均值;

4、打印结果。

代码如下;


#include <stdio.h>

int main(void){
    
    int sum=0,num=0; //存储能被3整除的正整数的和,存储能被3整除的正整数的数量变量 
    double avg=0.0;  //平均值 
    int integer;  //用于临时存储输入的每个整数的变量 
    
    scanf("%d",&integer); //获取一个整数输入 

    while(integer%11!=0){  //如果这个数不能被11整除 
        if(integer%3==0&&integer>0){  //同时这个数能被3整除,且是正整数,则其计数+1,把这个数累加到和中 
            sum+=integer;
            num++;
        }    
        scanf("%d",&integer);     //获取下一个整数输入     
    }
    
    avg = 1.0*sum/num; //求平均值
    //打印结果 
    printf("所有能和3整除的正整数的和是:%d, 其平均值是%f.\n",sum,avg);
    
    return 0;
    
} 

img


#include<stdio.h>

int main()
{
    int n = 0;//输入的数
    double s = 0;//计算能被3整除的和
    int c = 0;//计算有多少能被3整除的个数
    while (scanf("%d", &n)  != EOF)//输入的数不等于-1也就是程序终止标志-1
    {
        if (n == 11)//如果输入的是11就退出循环
            break;
        if (n % 3 == 0)
        {
            s = s + n;//输入的是3的倍数都加起来
            c++;
        }
    }
    printf("这组数的和为:%.1lf,这组数的均值为:%.1lf", s, s / c);//.1lf保留一位小数
    return 0;
}

img