#include <iostream>
#include <fstream>
#include <math.h>
#include<vector>
using namespace std;
int max(int arr[],int len);
int min(int arr[],int len);
int avg(int arr[],int len);
int standardDev(int arr[], int arg,int len);
int main()
{
//读取数据文件
ifstream in("scorse.txt", ios::in);
if (!in.is_open())
{
cout << "open error!" << endl;
exit(0);
}
//将数据文件数据存入数组
int i = 0;
int N = 10;
vector<int> v1(N);
while (!in.eof() && i < N)
{
in >> v1[i];
i++;
}
int n = v1.size();
int arr[n];
for(int i=0; i<n; i++){
arr[i] = v1[i];
}
//计算最大值最小值平均值和
int len = sizeof(arr) / sizeof(arr[0]);
//int Maximum,Minimum,arg,sdv;
//Maximum = max(arr);
//Minimum = min(arr);
//arg = avg(arr);
//sdv = standardDev(arr,arg);
ofstream ofs;
ofs.open("reslut.txt",ios::out );
ofs << max(arr,len) << endl; //endl用于换行
ofs << min(arr,len) << endl;
ofs << avg(arr,len) << endl;
ofs << standardDev(arr,avg(arr,len),len) << endl;
return 0;
}
int max(int arr[],int len){
int max = 0;
int m = len;
//访问数组中的每一个元素,如果这个元素比认定的最大值max还要大,那么更新最大值
for (int i = 0; i < m; i++)
{
if (arr[i]>max)
{
max = arr[i];
}
}
//遍历完数组后,得到的最终结果就是最大值
return max;
}
int min(int arr[] ,int len){
int min = arr[1];
int m = len;
//访问数组中的每一个元素,如果这个元素比认定的最大值max还要大,那么更新最大值
for (int i = 0; i < m; i++)
{
if (arr[i]<min)
{
min = arr[i];
}
}
//遍历完数组后,得到的最终结果就是最大值
return min;
}
int avg(int arr[],int len)
{
int i;
int m = len;
double sum = 0.0;
double arg;
for (i = 0; i < m; i++) {
sum = sum + arr[i];
}
arg = sum / m;
return arg;
}
int standardDev(int arr[], int arg,int len){
double sum = 0;
int m = len;
for (int i = 0; i < m; i++) // 求和
sum += pow(arr[i] - arg, 2);
return sqrt(sum / m); // 得到方差
}
计算随机数
#include<iostream>
#include<ctime>
#include<cstdlib>
#include<fstream>
#include<math.h>
using namespace std;
float avg(float arr[],int len);
float standardDev(float arr[], float arg,int len);
int main(){
float arr[100];
int i,len = 100;
srand((unsigned)time(NULL));//设置种子
for(i=0;i<100;i++){
arr[i]=rand()%1000/(float)(1000);
//cout<<arr[i]<<" ";
//if((i+1)%5==0) cout<<"\n";
}
ofstream ofs;
ofs.open("Data.txt",ios::out );
for(i = 0;i<100;i++){
ofs <<arr[i]<<" ";
if((i+1)%5==0)
ofs <<"\n";
}
ofs << avg(arr,len) << endl;
ofs << standardDev(arr,avg(arr,len),len) << endl;
return 0;
}
float avg(float arr[],int len)//求平均数
{
int i;
int m = len;
double sum = 0.0;
double arg;
for (i = 0; i < m; i++) {
sum = sum + arr[i];
}
arg = sum / m;
return arg;
}
float standardDev(float arr[], float arg,int len){
double sum = 0;
float m = len;
for (int i = 0; i < m; i++) // 求和
sum += pow(arr[i] - arg, 2);
return sum / m; // 得到方差
}
计算正态分布数
#include<iostream>
#include<ctime>
#include<cstdlib>
#include<fstream>
#include<math.h>
#include<vector>
using namespace std;
float avg(float arr[],int len);
float standardDev(float arr[], float arg,int len);
int main()
{
//读取数据文件
ifstream in("Data.txt", ios::in);
if (!in.is_open())
{
cout << "open error!" << endl;
exit(0);
}
//将数据文件数据存入数组
int i = 0;
int N = 100;
vector<float> v1(N);
while (!in.eof() && i < N)
{
in >> v1[i];
i++;
}
int n = v1.size();
float arr[n];
for(int i=0; i<n; i++){
arr[i] = v1[i];
}
float newarr[n];
for(int i=0; i<n; i++){
float sum;
sum = sqrt(-2*log(arr[i]))*cos(2*(3.1415)*arr[i])*0.3+1;
newarr[i] = sum;
}
int len = 100;
ofstream ofs;
ofs.open("reslut2.txt",ios::out );
for(i = 0;i<100;i++){
ofs <<arr[i]<<" ";
if((i+1)%5==0)
ofs <<"\n";
}
ofs << avg(arr,len) << endl;
ofs << standardDev(arr,avg(arr,len),len) << endl;
return 0;
}
float avg(float arr[],int len)//求平均数
{
int i;
int m = len;
double sum = 0.0;
double arg;
for (i = 0; i < m; i++) {
sum = sum + arr[i];
}
arg = sum / m;
return arg;
}
float standardDev(float arr[], float arg,int len){
double sum = 0;
float m = len;
for (int i = 0; i < m; i++) // 求和
sum += pow(arr[i] - arg, 2);
return sum / m; // 得到方差
}
统计字母出现的频率
#include<iostream>
#include<ctime>
#include<cstdlib>
#include<fstream>
#include<math.h>
#include <algorithm>
using namespace std;
int main(){
int a[26];//小写
ifstream in;
in.open("test.txt");
string line;
while(getline(in, line)) // line中不包括每行的换行符
{
cout << line << endl;
}
transform(line.begin(),line.end(),line.begin(),::tolower);
cout<<"转化为小写后为:"<<line<<endl;
int cnt[256] = {};
for(int i = 0; i < line.size(); i++){
cnt[(int)line[i]]++;
}
//输出字符出现次数并写入
ofstream ofs;
ofs.open("reslut3.txt",ios::out );
for(int i = 0; i < 256; i++){
if(cnt[i] != 0){
cout << (char)i << ":" << cnt[i] << endl;
ofs << (char)i << ":" << cnt[i] << endl;
}
}
return 0;
}
读取某列数据
#include<iostream>
#include<fstream>
#include <math.h>
#include<vector>
#include <sstream>
using namespace std;
int main()
{
ifstream myfile("E:\\C++\\reslut3.txt");
if (!myfile.is_open()){
cout << "Unable to open myfile";
system("pause");
exit(1);
}
vector<string> vec;
string temp;
while (getline(myfile, temp)) //利用getline()读取每一行,并按照行为单位放入到vector
{
vec.push_back(temp);
}
vector <float> radius;
//cout << "读入的数据为 " << endl;
for (auto it = vec.begin(); it != vec.end(); it++)
{
//cout << *it << endl;
istringstream is (*it); //用每一行的数据初始化一个字符串输入流;
string s;
int pam = 0;
while (is >> s) //以空格为界,把istringstream中数据取出放入到依次s中
{
if (pam == 1) //获取第六列的数据
{
float r = atof(s.c_str()); //做数据类型转换,将string类型转换成float
radius.push_back(r);
//cout << r << endl;
}
pam++;
}
}
//cout << "读入的第2列数据为 " << endl;
for (auto it = radius.begin(); it != radius.end(); it++)
{
cout << *it <<endl;
}
//cout << "successfully to open myfile";
ofstream ofs;
ofs.open("reslut4.txt",ios::out );
system("pause");
return 1;
}