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;
}
#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;
}