收集一段时间内出现的双色球号码:(这是我收集的,你可以随意收集)
统计其中1-33各个号码出现的频率。
如何实现呢?
分析:可以看出一行有七个数据,把这一行中的七个数据读取到一个一维数组里面,再计算这个一维数组中,1-33各个号码求出现的次数。之后,通过循环语句重复这一过程,知道数据被读取完为止,这样就可以计算出这个时间段中1-33各个号码球出现的频率。
分析完毕,开始实现:
1.把收集的数据保存到一个文件中,号码数据之间用空格隔开,文件格式为”.txt“。把这个文件的位置要与”.cpp“文件在同一目录。我把文件名设成了”ball“。这一步骤开始编译程序之前都可以。
2.开始写代码:
#include<iostream>
#include<fstream>
#include<string>
#include<Windows.h>
#include<iomanip>
using namespace std;
#define NUM 7
//把函数定义在主函数之后,在调用就要声明一下,否则编译器报错
bool statistics(const char *path, int ball[], int len);
int main(void) {
/*这个数组用来存储双色球出现的频率,ball[0]存储的是1号球的
频率,ball[1]存储的是2号球的频率,ball[2]存储的是3号球的频
率...以此类推
由此,数组的下标加1就是一个号码球的号码,它存储的数据就是该
号码求出现的次数,也就是频率
*/
int ball[33];
string filename;//给保存数据的文件的名字定义一个变量
cout << "请输入文件名:" << endl;
cin >> filename;
if(statistics(filename.c_str(), ball, 33)) {
}else {
}
system("pause");
return 0;
}
//判断统计数据是否成功
bool statistics(const char *path, int ball[], int len) {
ifstream file;//读取文件流
int ret[NUM];//接收读取文件流数据的一维数组
if(!path)