数据结构 求平均值
发布网友
发布时间:2023-03-22 10:26
我来回答
共3个回答
热心网友
时间:2023-10-10 18:53
char *ch = str;
int j = 0;
int k = 0;
for(i=0; i <strlen(str); i++)//把所有数字读到数组a中
{
if(ch != ',' ){ch++;continue;}
else{getnum(j,i,a[k])(起始索引截取字符串);j=i+1;k++;}
}
average = sum(a)/(k+1);
热心网友
时间:2023-10-10 18:53
[15@c-cpp]$ cat test.cpp
#include <iostream>
#include <sstream>
#include <string>
#include <algorithm>
using namespace std;
int main ()
{
string str("1,2,3,4,5,6,7,50");
replace(str.begin(), str.end(), ',' , ' ');
istringstream iss(str, istringstream::in);
int val, sum = 0, cnt = 0;
while (iss >> val)
sum += val, cnt++;
cout << "average: " << (double)sum/(double)cnt << endl;
return 0;
}
[16@c-cpp]$ g++ =Wall test.cpp
g++: =Wall:没有该文件或目录
[17@c-cpp]$ g++ -Wall test.cpp
[18@c-cpp]$ ./a.out
average: 9.75
热心网友
时间:2023-10-10 18:54
int sum=0,avg=0;
int count=0/*读取的数字的个数*/;
int num=0/*当前读取的数字*/;
bool lastIsChar=true;/*上次读取的字符是数字还是字符*/
do{
读取字符C;
if(C是数字) //读到一个数字字符,它可能是数字的某一位
{
num = 10 * num + C;
lastIsChar = false;
}
else
{ if(lastIsChar == false) //已读取一个完整的数字
{
count++;
sum += num;
}
lastIsChar == true;
}
}while(未读完);
if(lastIsChar == false)//假如读到的最后一位是数字,则该数字要加到sum中
{
count++;
sum += num;
}
if(count > 0)
avg = sum/count;//获得平均值