日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言进行数据指定步长的区间统计

發布時間:2025/3/12 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言进行数据指定步长的区间统计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設計需求:

1.對數據給出區間寬度進行統計
2.生成生成指定區間寬度的直方圖繪制數據

設計思路

  • 對直方圖的理解:直方圖是數值數據分布的精確圖形表示,建直方圖第一步是將值的范圍分段,即將整個值的范圍分成一系列間隔,然后計算每個間隔中有多少值。 這些值通常被指定為連續的,不重疊的變量間隔。 間隔必須相鄰,并且通常是(但不是必須的)相等的大小。也可以理解為各區間的相對頻率。
  • 從數據中求出最大值和最小值,對最大值向上取整,對最小值向下取整,即可得出區間范圍。從命令行參數中獲得區間值,用區間范圍除以區間值可以得到需要多少個區間,把區間長度定義成數組的長度,用數據減去最小值得到的差再除以區間值,就可以得到這個值除于哪個區間,再將所定義數組的相應區間值加一即可。即完成區間內的統計。再把數組的值對應寫入到文件中,得到直方圖所需的數據。

需要統計的數據

需要統計的數據是8000行服從正態分布其均值為1.2,方差為2.5的數據。

源代碼

#include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> int main(int argc,char* argv[]) {int len = 0, z;//數據行數double data = 0;//存放臨時數據double max = 0;//存放數據最大值double min = 0;//存放數據的最小值int num =0;//檢查用戶的參數是否正確if (argc != 4){printf("用法:程序名 統計步長 輸入文件 輸出文件\n");printf("程序名:編譯后后的.exe名稱\n");printf("統計步長:以多大范圍統計數據\n");printf("輸入文件:需要統計的文件名\n");printf("輸出文件:數據輸出的文件名\n");return -1;}//讀寫的文件路徑FILE* fin = fopen(argv[2], "r");FILE* fout = fopen(argv[3], "w");//檢查文件能否被打開if (fin == NULL){printf("源文件打開失敗!\n");return -1;}//檢測文件行數while ((z = fgetc(fin)) != EOF)if (z == '\n'){len++;}rewind(fin);//釋放文件指針//printf("數據個數=%d\n", len);//開辟動態內存char* str = (char*)malloc(sizeof(char) * len);while (1){fscanf(fin, "%s", str);if (feof(fin)) break;data = atof(str);if (data > max)//求出最大值和最小值確定區間{max = data;}if (data < min){min = data;}}rewind(fin);double MAX = ceil(max);//區間最大值double MIN = floor(min);//區間最小值double area = MAX - MIN;//區間范圍double step = atoi(argv[1]);//區間要用命令行參數//double step = 1;//傳入區間寬度num = ceil(area / step);//算出需要幾個區間int j = 0;//控制數組下標int p = (int)num;double a[p];//存放區間的數據計數printf("最大值:%lf\n", max);printf("最小值:%lf\n", min);printf("區間最大值:%.0f\n", MAX);printf("區間最小值:%.0f\n", MIN);printf("需要%d個區間\n", num);for(int i = 0; i < p; i++){a[i] = 0;//將數組全部初始化}while (1){fscanf(fin, "%s", str);if (feof(fin)) break;data = atof(str);//轉換為double//計算該數據的在數組里的下標j = (int)floor((data - MIN) / step);a[j]++;//相應的下標+1}for(int i=1; i < p; i++){//printf("第%.0f個區間有%.0f個數值\n", MIN, a[i-1]);//把數據按照格式打印到文件中fprintf(fout, "%.0f %.0f\n", MIN, a[i-1]);MIN++;}fclose(fin);//關閉文件指針fclose(fout);free(str);//釋放內存return 0; }

在gcc中編譯并輸入命令行指令運行程序

我們打開out.txt
得到統計的數據,在MATLAB中進行驗證,交可以看到數據的統計是正確的。

總結

以上是生活随笔為你收集整理的C语言进行数据指定步长的区间统计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 手机电影在线观看 | 午夜视频在线观看国产 | 人妻少妇被猛烈进入中文字幕 | 久久免费看少妇高潮v片特黄 | 日韩美女视频一区 | 亲子伦视频一区二区三区 | 久久高清av | 自拍偷拍亚洲视频 | 成熟了的熟妇毛茸茸 | 性高跟鞋xxxxhd国产电影 | 欧美日韩成人免费 | 久久av一区| 老头把女人躁得呻吟 | 亚洲永久免费精品 | av毛片在线免费观看 | 国产盗摄在线观看 | 日韩精品视频在线观看网站 | 伊人久久成人网 | 国产美女白浆 | 免费久草视频 | 免费成人在线电影 | 91色视频在线观看 | 日日狠狠久久 | 成年人国产视频 | 女人叉开腿让男人桶 | 天天射天天射 | 久久综合一区二区 | 脱裤吧导航 | 一级黄色在线播放 | 婷婷调教口舌奴ⅴk | 亚洲日本韩国在线 | 色播欧美 | 无码人妻一区二区三区免费 | 久久yy | 18被视频免费观看视频 | 国精品一区二区三区 | 蜜桃臀aⅴ精品一区二区三区 | av有声小说一区二区三区 | 午夜免费福利在线观看 | 国产一区二区三区三州 | 特一级黄色大片 | 毛片av免费 | 国产91在线观看 | 蜜桃av鲁一鲁一鲁一鲁俄罗斯的 | 日韩在线播放一区二区 | 国产91精品久久久久久久网曝门 | 操模特 | 精品国产一级片 | 国产资源站 | 色哟哟视频在线 | 日韩中文字幕一区二区三区四区 | 三级在线看中文字幕完整版 | 欧美性猛交xxxx乱大交3 | 亚洲免费在线看 | 97伊人超碰 | 在线免费精品视频 | 一区二区三区欧美日韩 | 日本视频在线观看免费 | 美女扒开尿口来摸 | 青青操久久 | 国产精品一区二区无线 | 999精品视频在线观看 | 日韩一级生活片 | 亚洲爱情岛论坛永久 | 亚洲精品久久夜色撩人男男小说 | 日韩精品一区二区三区高清免费 | 日本打白嫩屁股视频 | 国产精品第一区 | 毛片视| 国产免费内射又粗又爽密桃视频 | av福利片| 999这里有精品 | 在线免费观看亚洲视频 | 91免费精品 | 黄色a级片视频 | 久久久不卡国产精品一区二区 | 国产成人精品一区二三区四区五区 | 人人妻人人爽欧美成人一区 | 久艹在线观看视频 | 国产一区二区在线免费 | 双性娇喘浑圆奶水h男男漫画 | 国产高清露脸 | 国产白丝av | 日韩欧美亚洲精品 | 国产在线日韩 | 91毛片视频 | 乱一色一乱一性一视频 | 欧美一级做性受免费大片免费 | 一道本一区二区 | 午夜精品久久久久久久久久久久久 | 日本一区高清 | 亚洲经典自拍 | jizz韩国 | 日韩污视频在线观看 | 手机看片中文字幕 | 色爽爽一区二区三区 | 黄av网 | 黄色无遮挡网站 | 国产精品骚 |