c語言樣本
㈠ c語言中數組大小如何用已經被賦值的變數來定義 求詳細的樣本代碼。
這個需要用指針來動態分配內存,比如
int size=8;
int *nums;
nums=(int *)malloc(sizeof(int)*size);
然後你就可以把nums當成長度為8的數組使用了,其操作方式和int nums[8];一模一樣
㈡ 求C語言編寫的一般格式
1,C語言程序的結構特點
一個C語言程序通常由一個預處理語句開始,如#include〉stdio.h〉,它表示,在編譯語言程序前,用指明的文件取代改預處理語句,通常文件名是帶有後綴為.h的磁碟文件.編譯時,它將從磁碟中讀出並插入到原來的預處理程序語句中.即預處理語句被指明的包含文件(頭文件)代替.
頭文件通常是在程序中被調用函數的說明語句和該函數用到的一些符號常量的宏定義.如在程序中經常調用一些標准庫函數時,系統提供了相應的頭文件,他們其中的一些內容是對該函數的說明及該函數用到的符號常量的宏定義等,如對fgets()的說明放在頭文件stdio.h中,再蓋頭文件包含了對fgets()函數的說明:
char *fgets(char *s,int n,FILE *stream)
對符號常量的定義:
#define NULL 0
當然還包含了一些其他的標准I/O函數的說明和宏定義等.用戶也可以建立自己的頭文件,在程序開頭用include進行包含就行了:
#include"文件名"
注意此時用" "符號來包括,它與 #include〉文件名〉的區別是查找的路徑不同.前者表示現在當前目錄中查找該文件,如果找不到,再到系統指定的目錄中查找.而後者只在系統的制定目錄中查找(一般是include\目錄),若找不到,便報錯.所以用#include"文件名"的形式常用於用戶自己寫的包含文件,他們通常放在和用戶程序同一個目錄下.當然在這種形式中,文件名也可用文件路徑代替,這時,編譯器就去用戶指定的目錄去查找包含文件.文件包含也可以用在程序行中,如:
main()
{
...
#include "myc.c"
...
}
其中myc.c時用戶的c文件,編譯時,它將從磁碟中取出,插入到該位置處.
一些在程序中常用到的常量也用編譯預處理命令#define來定義,如在真假判斷時,常用符號常量TURE和FALSE表示真和假,這時可以用一下定義:
#define TURE 1
#define FALSE 0
將以上代碼寫在程序的開頭,編譯時在程序中出現TURE的地方都用1代替,出現FALSE的地方用0代替.
一個完整的C程序,總是由main()函數開始,它像一個大型樂曲的引子,由此引出許多樂章(執行不同的功能的函數);main()函數又像一個大型建築的框架,它顯示了要完成這個建築的輪廓,這些輪廓就是由一個個函數調用勾畫出來的.因此可以說一個C程序是由一個個的模塊堆砌起來的,這些模塊的最小元素是函數.當然,模塊也可以是一個源程序,它又有許多的函數組成.所以c程序的設計是一種模塊化的設計,是許多的函數的堆砌.因此在應用程序的設計中,應將一個個的功能用一個個的函數來實現.下面就談談函數的使用.
turbo C的函數的使用
Turbo C2.0提供了400多個標準的庫函數,每個函數都完成一定的功能.當程序執行這些功能時,只要調用這些函數即可,用戶不必再自己寫這些函數了.這些庫函數包括輸入輸出函數,數學函數,字元串處理函數,內存函數,與BIOS和Dos有關的介面函數,屏幕函數和圖形函數,過程式控制制函數和目錄函數等.這些函數在我的主頁上都能查到,歡迎來查詢.
當標准庫函數中沒有用戶要用的函數時,就必須自己設計了,設計函數的原則是:
1,函數不應處理太多的功能,要保持函數的小型化,功能單一化.
2,一個函數要保持自己的獨立性,如同一個黑匣子一樣,有進有出.
3,在函數中多使用復合語句,使函數也具有結構化,並且可以提高執行效率和節省存儲空間.
4,在主函數前,要羅列出所有使用自定義函數的原型說明,這有利於在大型程序設計中追蹤要調用的函數設置是 否正確.
5,在程序適當的地方加入注釋(用/*...*/包含的語句)這便於程序的閱讀和調試.
6,採用層次的書寫程序格式,按程序的不同功能分層次.
這樣一個函數編譯後,其內部定義的程序代碼與數據與另一個函數的程序代碼和數據不會相互影響,因此在函數中要使用局部變數,即它的生存期指維持在調用該函數並執行時,也就是說函數被激活時.要盡量少用或不用全局變數,它將破壞函數的獨立性.函數的這種設計方法類似於面向對象設計方法中的封裝性.
C大型軟體程序的設計步驟
C語言作為結構化的程序設計語言,易採用自頂向下的設計方法,即開始咱不涉及問題的實質和具體的解決步驟,而只是從問題的全局出發,給出一個概括性的抽象描述.例如編寫一個信號處理程序,它要求對信號數據經過數字處理後進行圖形顯示並存檔.因而程序大輪廓應該是:
1,信號數據的輸入
2,信號預處理
3,信號進行數字處理
4,進行顯示
5,進行存檔
接著對各項功能進行細分,例如對於信號的輸入,又可分為:
1.通過com1或com2由RS-232介面進行輸入
2.由磁碟數據文件輸入
對信號預處理又可分為:
1.對信號進行反序排列
2.用窗函數預處理
對數字處理又可分為:
1.求快速傅立葉變換
2.求功率譜
對用窗函數處理又可分為:
1.海明窗處理函數
2.漢寧窗處理
3.布拉格曼窗處理
其他功能依此類推.
在此細化的基礎上再進行細化,以至於成為一個個單獨的功能,便於用一個個函數來實現.
下面就是設計一個個函數的實質性階段.要定義變數,要選區標准函數,要確定演算法,這是構造程序的基本單元.當一個個函數都設計完了以後,便可將這些函數在主函數中堆砌起來,並用主函數做總控程序,完成對他們的參數傳遞,控制選擇對這些函數的調用,形成一個完整的實用的信號處理程序.
大程序的設計風格
當一個程序較大時,可將一個程序分成幾個部分,每一個部分可單獨編成一個源文件,這些源文件可進行單獨編譯成.obj文件,然後將這些文件組合成一個較大的程序.通常可採用如下方法:
1.include方法
例如,一個程序分成兩個源文件,既由a1.c和a2.c兩個源程序組成,這時候可將a1.c寫成:
#include〉stdio.h〉
#include"a2.c"
main()
{
...
strcpy(s1,s2);
a2();
...
}
而a2.c可寫成:
#include〉string.h〉
void a2()
{
....
}
然後在製作一個project文件,內容為:a1.c a2.c
設這個工程文件名為:a1.prj,其中文件中各文件名的後綴可省略,先後順序也無關,它隻影響編譯時的順序.者可在Turbo c的編輯狀態下寫成,並存檔為a2.prj文件.然後用Alt+p選擇Project菜單中的Project_name項,填寫生成的a1.prj文件名.然後按F9,即可生成a1.exe可執行文件.
當用匯編語言與C語言混合編程時,則要將匯編語言子程序單獨編譯生成.obj文件,然後製作工程文件,再進行對C程序的編譯和連接.關於這方面的介紹可參考Turbo c2.0的命令行編譯.
若程序還需要一些其他的被編譯的程序或庫文件,這些文件時C語言的標准庫不能提供的,則也可將它們的名字放在Project文件中.如:
mymain
myfunc
secial.obj
other.lib
當用F9進行編譯連接時,對後綴為.obj的文件只進行連接,對後綴為.lib的庫文件不會進行編譯,只是進行連接,這樣當進行外部調用時,就只會對庫進行檢索.
當多個源文件製作成project 文件時,一個.c的源文件依賴於其他的.c源文件,若它們之間用一個頭文件來進行介面,這時應用括弧將這些頭文件擴起來(頭文件之間可用逗號,空格或分號間隔),這樣一旦頭文件改變時,它們將被重新編譯,例如:有一個主程序名為mymian.c,它包含頭文件為:myfuncs.h,而另一個文件是myfuncs.c
這樣當project文件的內容寫成如下形勢時:
mymain.c(myfuncs.h)
myfuncs.c(myfuncs.h)
若一旦myfuncs.h被修改,則對該project文件進行編譯時,mymain.c及myfuncs.h將被重新編譯
㈢ 如何用C語言生成一個正態分布的樣本
調試程序時,隨機數種子可以設常數,例如srand(54321);
用 rand() 產生均勻分布隨機數 x1,x2
利用瑞利分布得正態分布隨機數 y1,y2
再按要求線性縮放一下到[0.01,2] 區間。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
main(){
#define N 100
double rd[N];
double x1,x2,y1,y2;
double pi2=6.28318530728,mx,mi,ave=0;
int i;
//srand(54321);
srand(time(NULL));
for (i=0;i<=N-2;i=i+2){
x1=1.0*rand()/RAND_MAX;
x2=1.0*rand()/RAND_MAX;
y1= sqrt((-2.0*log(x1))) * cos(pi2*x2);
y2= sqrt((-2.0*log(x1))) * sin(pi2*x2);
rd[i]=y1;
rd[i+1]=y2;
}
mx=rd[0];mi=rd[0];
for (i=0;i<N;i++){
if (rd[i]>mx)mx=rd[i];
if (rd[i]<mi)mi=rd[i];
}
//printf("mi=%lf mx=%lf\n",mi,mx);
for (i=0;i<N;i++) rd[i] = (rd[i]-mi)/(mx-mi+0.001) * (2.0-0.01) + 0.01;
for (i=0;i<N-2;i=i+2) printf("%lf %lf\n",rd[i],rd[i+1]);
return 0;
}
㈣ 如何用c語言生成一個正態分布的樣本
不用加分,我做過,用來產生圖像的高斯雜訊,也就是你要的正態分布.
1.首先你的樣本應該是有一定范圍的吧,我假設它是從1-255
2.根據你的方差和期望,把樣本代進去,算出該樣本出現的概率
3.然後根據概率知識,你做一個累積概率
4.接著你用隨機數產生一個0-1之間的均勻分布
5.看這個數落在哪個累積概率區間
6.按你要的樣本數重復4-5
代碼這里我給個matlab程序你參考一下,很好懂的
function [dest] = GeneGauss(expectation,deviation,width,height)
dest=zeros(width,height);
pz=zeros(256);
tempConst1=1/(sqrt(2*pi)*deviation);
tempConst2=2*deviation*deviation;
for i=1:256
pz(i)=tempConst1*exp(-(i-1-expectation)^2/tempConst2);
end
f=zeros(256);
f(1)=pz(1);
for i=2:256
f(i) = f(i-1)+pz(i);
end
for i=1:width
for j=1:height
n=rand;
for k=1:256
if(n<f(k))
dest(i,j)=k-1;
break;
end
end
end
end
end
㈤ C語言求樣本平均
#include "stdio.h"
#include "math.h"
#define N 100
void main()
{
int a[N],n,i;
float aver,s;
float sum=0,e=0;
printf("請輸入樣本量:");
scanf("%d",&n);
printf("請輸入%d個樣本:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
aver=sum/n;
for(i=0;i<n;i++)
e+=(a[i]-aver)*(a[i]-aver);
e/=n-1;
s=sqrt(e);
printf("平均數為:%.2f,方差為:%.2f,標准差為:%.2f\n",aver,e,s);
}
㈥ C語言是什麼怎麼認發點樣本來看看行嗎
C的樣子大概是如下,以下為標准C,如果你的編譯器不支持標准C的話,可能編譯會出錯(例如VC+6.0就不是支持標准C的)
#include /* 包含頭文件,要用到某些已經實現的函數功能 */
/* 像這樣用斜杠和星號夾住的文字屬於注釋 */
#define STR "Hello World"
/* 宏定義在編譯過程展開,具體來說是在預處理的時候展開 一般定義宏是為了方便修改*/
int main() /* 標准C規定,main函數的返回值必須是int,國內市面上很多書都不是這樣寫,*/
{
printf("字元串:%s\n",STR);/*用到的函數在stdio.h理聲明,所以必須包含第一句*/
return 0; /* 如果是標准C,int main()是有特殊對待,可以不return*/
}
學習C語言,首先要找一個工具,一般你買一本C語言學習的書籍,都會使用某一工具,一本就夠了,本來我是要介紹國外版的,但是發現很多人不看E文,所以介紹一下國內比較好的吧,譚浩強教授的C語言的書就比較好,適合初學者。
P.S.上面答案中說道C語言是Bjarne Stroustrup博士發明的,是錯的,Bjarne Stroustrup是C++之父,並不是發型C的,發明C的兩個傢夥同時也是Unix操作系統的開發者,名字我不記得了,你網路一下就OK了,總之是K和R開頭的,所以有K&R之說,後來C語言被標准化了,就不叫K&R C,二是ANSI C(也就是標准C)。
㈦ C語言 看看哪錯 讀入一組大小為n(n<=10010)個樣本數據(雙精度浮點數),求他們的均值E和方差D。
先定義一個數字0到9對應的英文數組,之後計算輸入數字的各位數之和,將這個數「倒序」,然後(用倒序後的數)從低位向高位輸出對應的英文,在手機上用易歷知食軟體里的微C程序設計來編寫個示例,供參考。手機上代碼如下圖所示:
手機上運行效果如下圖:
㈧ C語言程序設計課程設計報告怎麼寫啊有誰有樣本嗎謝啦!
實 驗 報 告 一
課 程 C語言程序設計 實驗項目 C程序設計初步 成 績
專業班級 學 號 指導教師 金發夏
姓 名 序 號 實驗日期
一【實驗目的】
1. 了解使用VC++6.0的開發環境;
2. 掌握在該系統上如何編輯、編譯、連接和運行一個C程序;
3. 通過運行簡單的C程序,初步了解C源程序的特點;
二【實驗內容】
【實驗1-1】輸入並運行一個簡單的正確程序
1)輸入下面的程序
include <stdio.h>
void main( )
{
printf(" 歡迎學習C語言程序設計!\n ");
}
2).仔細觀察屏幕的輸入程序,檢查有無錯誤。
3).對該程序進行編譯,查看編譯輸出窗口,檢查是否有錯誤,有錯誤需要改正錯誤。無錯誤就可以運行程序。
【實驗1-2】設計一個程序,已知矩形的兩條邊長為3.2和1.5,求矩形的面積。
【實驗1-3】求4和6的和,並在顯示器上輸出。然後修改程序從鍵盤上任意輸入2個整數,並將二者的和輸出。
三【實驗過程】
四【實驗小結】
㈨ c語言中抽取樣本量30-100by10是什麼意思
c語言中抽取樣本量30-100by10是什麼意思解釋如下:
[1] (30-secon) // 30 減去 變數 secon 的當前值。例如 30-5 = 25。
[2] %100 是除法取余數運算。這里 整除100, 取余數。例如: 30-secon 得 25, 25%100 得商0,得余數 25。 結果是 25。
[3] /10 是除法運算。 整數/10 是整除運算。例如 25/10 得 2,不考慮4舍5入,只取整數商。
