编写程序,输入未指定个数的整数,判断读入的正数有多少个,读入的负数有多少个,然后计算这些输入值得总和及平均值(不对0计数)。当输入为0时,表明程序结束。将平均值以double型数据显示。
时间: 2023-05-31 14:17:46 浏览: 392
### 回答1:
以下是C语言的代码示例:
```
#include<stdio.h>
int main()
{
int n,count_pos=0,count_neg=0;
double sum=0,ave=0;
while(1)
{
printf("请输入一个整数:");
scanf("%d",&n);
if(n==0) break;
if(n>0) count_pos++;
else count_neg++;
sum+=n;
}
ave=sum/(count_pos+count_neg);
printf("正数有%d个,负数有%d个\n",count_pos,count_neg);
printf("总和是%.0f,平均值是%.2lf",sum,ave);
return 0;
}
```
### 回答2:
此题需要用到循环语句以及条件语句,以下是具体步骤:
1. 声明变量并定义初值,包括计数器和累加器。
```
int positiveCount = 0; // 正数计数器
int negativeCount = 0; // 负数计数器
int temp; // 临时存储输入值
double sum = 0; // 总和
```
2. 使用循环语句进行输入,当输入值为0时跳出循环。
```
while (1) {
scanf("%d", &temp);
if (temp == 0) {
break;
}
// 在此处进行判断,并对计数器和累加器进行操作
}
```
3. 在循环中进行判断,对计数器和累加器进行操作。
```
if (temp > 0) {
positiveCount++; // 正数数量加1
sum += temp; // 总和加上输入值
} else if (temp < 0) {
negativeCount++; // 负数数量加1
sum += temp; // 总和加上输入值
}
```
4. 除以数量计算平均值。注意要进行类型转换。
```
double average = (double)sum / (positiveCount + negativeCount);
```
5. 输出结果。
```
printf("正数数量:%d,负数数量:%d,总和:%d,平均值:%.2f", positiveCount, negativeCount, (int)sum, average);
```
完整代码:
```
#include <stdio.h>
int main() {
int positiveCount = 0; // 正数计数器
int negativeCount = 0; // 负数计数器
int temp; // 临时存储输入值
double sum = 0; // 总和
while (1) {
scanf("%d", &temp);
if (temp == 0) {
break;
}
if (temp > 0) {
positiveCount++; // 正数数量加1
sum += temp; // 总和加上输入值
} else if (temp < 0) {
negativeCount++; // 负数数量加1
sum += temp; // 总和加上输入值
}
}
double average = (double)sum / (positiveCount + negativeCount);
printf("正数数量:%d,负数数量:%d,总和:%d,平均值:%.2f", positiveCount, negativeCount, (int)sum, average);
return 0;
}
```
### 回答3:
本题需要用到循环结构和条件结构。首先用while循环实现不断输入数字并进行判断,当输入为0时结束循环。在循环中使用if条件语句对输入的数进行分类,分别累加正数数量,负数数量以及总和。同时需要注意的是,对于为0的数不应该计入数量中。
最后根据累加的数量和总和计算平均值,需要将结果以double类型输出,因此需要进行类型转换。最终代码如下:
```c++
#include <iostream>
using namespace std;
int main()
{
int n, count_positive = 0, count_negative = 0, sum = 0;
double average;
cout << "请输入数字:";
cin >> n;
while (n != 0)
{
if (n > 0)
{
count_positive++;
sum += n;
}
else
{
count_negative++;
sum += n;
}
cout << "请输入数字:";
cin >> n;
}
if (count_positive + count_negative != 0) // 除数不为0才能计算平均值
{
average = double(sum) / (count_positive + count_negative);
cout << "正数个数为:" << count_positive << endl;
cout << "负数个数为:" << count_negative << endl;
cout << "所有数的总和为:" << sum << endl;
cout << "所有数的平均值为:" << average << endl;
}
else
{
cout << "您没有输入任何数字!" << endl;
}
return 0;
}
```
需要注意的是,该程序中输入的数可以是正数、负数、0,但是输出时不对0进行统计和计算。如果想对0进行处理,在判断输入数的时候需要设定特殊条件。
阅读全文