亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 01.txt

?? CC++語言程序百例精解 非常經典的C
?? TXT
字號:
C/C++語言程序百例C/C++語言經典、實用、趣味程序設計編程百例精解(1)

1.繪制余弦曲線

在屏幕上用“*”顯示0~360度的余弦函數cos(x)曲線

*問題分析與算法設計
如果在程序中使用數組,這個問題十分簡單。但若規定不能使用數組,問題就變得不容易了。
關鍵在于余弦曲線在0~360度的區間內,一行中要顯示兩個點,而對一般的顯示器來說,只能按行輸出,即:輸出第一行信息后,只能向下一行輸出,不能再返回到上一行。為了獲得本文要求的圖形就必須在一行中一次輸出兩個“*”。
為了同時得到余弦函數cos(x)圖形在一行上的兩個點,考慮利用cos(x)的左右對稱性。將屏幕的行方向定義為x,列方向定義為y,則0~180度的圖形與180~360度的圖形是左右對稱的,若定義圖形的總寬度為62列,計算出x行0~180度時y點的坐標m,那么在同一行與之對稱的180~360度的y點的坐標就 應為62-m。程序中利用反余弦函數acos計算坐標(x,y)的對應關系。
使用這種方法編出的程序短小精煉,體現了一定的技巧。

*程序說明與注釋
#include<stdio.h>
#include<math.h>
int main()
{
double y;
int x,m;
for(y=1;y>=-1;y-=0.1) /*y為列方向,值從1到-1,步長為0.1*/
{
m=acos(y)*10; /*計算出y對應的弧度m,乘以10為圖形放大倍數*/
for(x=1;x<m;x++) printf(" ");
printf("*"); /*控制打印左側的 * 號*/
for(;x<62-m;x++)printf(" ");
printf("*\n"); /*控制打印同一行中對稱的右側*號*/
}

return 0;
}

*思考題
如何實現用“*”顯示0~360度的sin(x)曲線。

在屏幕上顯示0~360度的cos(x)曲線與直線f(x)=45*(y-1)+31的迭加圖形。其中cos(x)圖形用“*”表示,f(x)用“+”表示,在兩個圖形相交的點上則用f(x)圖形的符號。

2.繪制余弦曲線和直線

*問題分析與算法設計
本題可以在上題的基礎上進行修改。圖形迭加的關鍵是要在分別計算出同一行中兩個圖形的列方向點坐標后,正確判斷相互的位置關系。為此,可以先判斷圖形的交點,再分別控制打印兩個不同的圖形。

*程序注釋與說明
#include<stdio.h>
#include<math.h>
int main()
{
double y;
int x,m,n,yy;
for(yy=0;yy<=20;yy++) /*對于第一個y坐標進行計算并在一行中打印圖形*/
{
y=0.1*yy; /*y:屏幕行方向坐標*/
m=acos(1-y)*10; /*m: cos(x)曲線上y點對應的屏幕列坐標*/
n=45*(y-1)+31; /*n: 直線上y點對應的列坐標*/
for(x=0;x<=62;x++) /*x: 屏幕列方向坐標*/
if(x==m&&x==n) printf("+"); /*直線與cos(x)相交時打印“+”*/
else if(x==n) printf("+"); /*打印不相交時的直線圖形*/
else if(x==m||x==62-m) printf("*"); /*打印不相交時的cos(x)圖形*/
else printf(" "); /*其它情況打印空格*/
printf("\n");
}

return 0;
}

*思考題
如何實現sin(x)曲線與cos(x)曲線圖形的同時顯示。

3.繪制圓

在屏幕上用“*”畫一個空心的圓

*問題分析與算法設計
打印圓可利用圖形的左右對稱性。根據圓的方程:
R*R=X*X+Y*Y
可以算出圓上每一點行和列的對應關系。

*程序說明與注釋
#include<stdio.h>
#include<math.h>
int main()
{
double y;
int x,m;
for(y=10;y>=-10;y–)
{
m=2.5*sqrt(100-y*y); /*計算行y對應的列坐標m,2.5是屏幕縱橫比調節系數因為屏幕的
行距大于列距,不進行調節顯示出來的將是橢圓*/
for(x=1;x<30-m;x++) printf(" "); /*圖形左側空白控制*/
printf("*"); /*圓的左側*/
for(;x<30+m;x++) printf(" "); /*圖形的空心部分控制*/
printf("*\n"); /*圓的右側*/
}
return 0;
}

*思考題
實現函數y=x2的圖形與圓的圖形疊加顯示
4.歌星大獎賽

在歌星大獎賽中,有10個評委為參賽的選手打分,分數為1~100分。選手最后得分為:去掉一個最高分和一個最低分后其余8個分數的平均值。請編寫一個程序實現。

*問題分析與算法設計
這個問題的算法十分簡單,但是要注意在程序中判斷最大、最小值的變量是如何賦值的。
*程序說明與注釋
#include<stdio.h>
int main()
{
int integer,i,max,min,sum;
max=-32768; /*先假設當前的最大值max為C語言整型數的最小值*/
min=32767; /*先假設當前的最小值min為C語言整型數的最大值*/
sum=0; /*將求累加和變量的初值置為0*/
for(i=1;i<=10;i++)
{
printf("Input number %d=",i);
scanf("%d",&integer); /*輸入評委的評分*/
sum+=integer; /*計算總分*/
if(integer>max)max=integer; /*通過比較篩選出其中的最高分*/
if(integer<min)min=integer; /*通過比較篩選出其中的最低分*/
}
printf("Canceled max score:%d\nCanceled min score:%d\n",max,min);
printf("Average score:%d\n",(sum-max-min)/8); /*輸出結果*/
}

*運行結果
Input number1=90
Input number2=91
Input number3=93
Input number4=94
Input number5=90
Input number6=99
Input number7=97
Input number8=92
Input number9=91
Input number10=95
Canceled max score:99
Canceled min score:90
Average score:92

*思考題
題目條件不變,但考慮同時對評委評分進行裁判,即在10個評委中找出最公平(即評分最接返平均分)和最不公平(即與平均分的差距最大)的評委,程序應該怎樣實現?
5.求最大數

問555555的約數中最大的三位數是多少?

*問題分析與算法設計
根據約數的定義,對于一個整數N,除去1和它自身外,凡能整除N的數即為N的約數。因此,最簡單的方法是用2到N-1之間的所有數去除N,即可求出N的全部約數。本題只要求取約數中最大的三位數,則其取值范圍可限制在100到999之間。
*程序說明與注釋
#include<stdio.h>
int main()
{
long i;
int j;
printf("Please input number:");
scanf("%ld",&i);
for(j=999;j>=100;j–)
if(i%j==0)
{
printf("The max factor with 3 digits in %ld is:%d,\n",i,j);
break;
}
}

*運行結果
輸入:555555
輸出:The max factor with 3 digits in 555555 is:777
6.高次方數的尾數

求13的13次方的最后三位數

*問題分析與算法設計
解本題最直接的方法是:將13累乘13次方截取最后三位即可。
但是由于計算機所能表示的整數范圍有限,用這種“正確”的算法不可能得到正確的結果。事實上,題目僅要求最后三位的值,完全沒有必要求13的13次方的完整結果。
研究乘法的規律發現:乘積的最后三位的值只與乘數和被乘數的后三位有關,與乘數和被乘數的高位無關。利用這一規律,可以大大簡化程序。
*程序說明與注釋
#include<stdio.h>
int main()
{
int i,x,y,last=1; /*變量last保存求X的Y次方過程中的部分乘積的后三位*/
printf("Input X and Y(X**Y):");
scanf("%d**%d",&x,&y);
for(i=1;i<=y;i++) /*X自乘Y次*/
last=last*x%1000; /*將last乘X后對1000取模,即求積的后三位*/
printf("The last 3 digits of %d**%d is:%d\n",x,y,last%1000); /*打印結果*/
}

*運行結果
Input X and Y(X**Y):13**13
The last 3 digits of 13**13 is:253
Input X and Y(X**Y):13**20
The last 3 digits of 13**20 is:801
7.階乘尾數零的個數

100!的尾數有多少個零?

 

*問題分析與算法設計
  可以設想:先求出100!的值,然后數一下末尾有多少個零。事實上,與上題一樣,由于計算機所能表示的整數范圍有限,這是不可能的。
  為了解決這個問題,必須首先從數學上分析在100!結果值的末尾產生零的條件。不難看出:一個整數若含有一個因子5,則必然會在求100!時產生一個零。因此問題轉化為求1到100這100個整數中包含了多少個因子5。若整數N能被25整除,則N包含2個因子5;若整數N能被5整除,則N包含1個因子5。
*程序說明與注釋
#include<stdio.h>
int main()
{
int a,count =0;
for(a=5;a<=100;a+=5) //循環從5開始,以5的倍數為步長,考察整數
{
++count; //若為5的倍數,計數器加1
if(!(a%25)) ++count; //若為25的倍數,計數器再加1
}
printf("The number of 0 in the end of 100! is: %d.\n",count); //打印結果
return 0;
}

*運行結果
The number of 0 in the end of 100! is: 24.

*問題進一步討論

本題的求解程序是正確的,但是存在明顯的缺點。程序中判斷整數N包含多少個因子5的方法是與程序中的100有關的,若題目中的100改為1000,則就要修改程序中求因子5的數目的算法了。

*思考題

修改程序中求因子5的數目的算法,使程序可以求出任意N!的末尾有多少個零。
8.借書方案知多少

小明有五本新書,要借給A,B,C三位小朋友,若每人每次只能借一本,則可以有多少種不同的借法?

*問題分析與算法設計
本問題實際上是一個排列問題,即求從5個中取3個進行排列的方法的總數。首先對五本書從1至5進行編號,然后使用窮舉的方法。假設三個人分別借這五本書中的一本,當三個人所借的書的編號都不相同時,就是滿足題意的一種借閱方法。
*程序說明與注釋
int main()
{
int a,b,c,count=0;
printf("There are diffrent methods for XM to distribute books to 3 readers:\n");
for(a=1;a<=5;a++) /*窮舉第一個人借5本書中的1本的全部情況*/
for(b=1;b<=5;b++) /*窮舉第二個人借5本書中的一本的全部情況*/
for(c=1;a!=b&&c<=5;c++) /*當前兩個人借不同的書時,窮舉第三個人借5本書
中的1本的全部情況*/
if(c!=a&&c!=b) /*判斷第三人與前兩個人借的書是否不同*/
printf(count%8?"%2d:%d,%d,%d ":"%2d:%d,%d,%d\n ",++count,a,b,c);
/*打印可能的借閱方法*/
}

*運行結果
There are diffrent methods for XM to distribute books to 3 readers:
1: 1,2,3 2: 1,2,4 3: 1,2,5 4: 1,3,2 5: 1,3,4
6: 1,3,5 7: 1,4,2 8: 1,4,3 9: 1,4,5 10:1,5,2
11:1,5,3 12:1,5,4 13:2,1,3 14:2,1,4 15:2,1,5
16:2,3,1 17:2,3,4 18:2,3,5 19:2,4,1 20:2,4,3
21:2,4,5 22:2,5,1 23:2,5,3 24:2,5,4 25:3,1,2
26:3,1,4 27:3,1,5 28:3,2,1 29:3,2,4 30:3,2,5
31:3,4,1 32:3,4,2 33:3,4,5 34:3,5,1 35:3,5,2
36:3,5,4 37:4,1,2 38:4,1,3 39:4,1,5 40:4,2,1
41:4,2,3 42:4,2,5 43:4,3,1 44:4,3,2 45:4,3,5
46:4,5,1 47:4,5,2 48:4,5,3 49:5,1,2 50:5,1,3
51:5,1,4 52:5,2,1 53:5,2,3 54:5,2,4 55:5,3,1
56:5,3,2 57:5,3,4 58:5,4,1 59:5,4,2 60:5,4,3

9.楊輝三角形

在屏幕上顯示楊輝三角形

            1
          1 1
        1 2 1
       1 3 3 1
      1 4 6 4 1
   1 5 10 10 5 1
………………………………..

*問題分析與算法設計
楊輝三角形中的數,正是(x+y)的N次方冪展開式各項的系數。本題作為程序設計中具有代表性的題目,求解的方法很多,這里僅給出一種。
從楊輝三角形的特點出發,可以總結出:
1)第N行有N+1個值(設起始行為第0行)
2)對于第N行的第J個值:(N>=2)
當J=1或J=N+1時:其值為1
J!=1且J!=N+1時:其值為第N-1行的第J-1個值與第N-1行第J個值
之和
將這些特點提煉成數學公式可表示為:
1 x=1或x=N+1
c(x,y)=
c(x-1,y-1)+c(x-1,y) 其它

本程序應是根據以上遞歸的數學表達式編制的。
*程序說明與注釋
#include<stdio.h>
int main()
{
int i,j,n=13;
printf("N=");
while(n>12)
scanf("%d",&n); /*控制輸入正確的值以保證屏幕顯示的圖形正確*/
for(i=0;i<=n;i++) /*控制輸出N行*/
{
for(j-0;j<24-2*i;j++) printf(" "); /*控制輸出第i行前面的空格*/
for(j=1;j<i+2;j++) printf("%4d",c(i,j)); /*輸出第i行的第j個值*/
printf("\n");
}
}

void int c(int x,int y) /*求楊輝三角形中第x行第y列的值*/
{
int z;
if((y==1)||(y==x+1)) return 1; /*若為x行的第1或第x+1列,則輸出1*/
z=c(x-1,y-1)+c(x-1,y); /*否則,其值為前一行中第y-1列與第y列值之和*/
return z;
}

*思考題
自行設計一種實現楊輝三角形的方法
10.數制轉換

將任一整數轉換為二進制形式

*問題分析與算法設計
將十進制整數轉換為二進制的方法很多,這里介紹的實現方法利用了C語言能夠對位進行操作的特點。對于C語言來說,一個整數在計算機內就是以二進制的形式存儲的,所以沒有必要再將一個整數經過一系列的運算轉換為二進制形式,只要將整數在內存中的二進制表示輸出即可。
*程序說明與注釋
#include<stdio.h>
void printb(int,int);
int main()
{
int x;printf("Input number:");
scanf("%d",&x);
printf("number of decimal form:%d\n",x);
printf(" it's binary form:");
printb(x,sizeof(int)*8); /*x:整數 sizeof(int):int型在內存中所占的字節數
sizeof(int)*8:int型對應的位數*/
putchar('\n');
}

void printb(int x,int n)
{
if(n>0)
{
putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1))); /*輸出第n位*/
printb(x,n-1); /*歸調用,輸出x的后n-1位*/
}
}

*運行結果
輸入:8
輸出:
number of decimal form:8
it's bunary form:0000000000001000
輸入:-8
輸出:number of decimal form:-8
it's binary form:1111111111111000
輸入:32767
輸出:number of decimal form:32767
it's binary form:0111111111111111
輸入:-32768
輸出:number of decimal form:-32768
it's binary form:1000000000000000
輸入:128
輸出:number of decimal form:128
it's binary form:0000000010000000

*問題的進一步討論
充分利用C語言可以對位進行操作的特點,可以編寫許多其它高級語言不便于編寫甚至根本無法編寫的程序。位操作是C語言的一大特點,在深入學習C語言的過程中應力求很好掌握。
程序中使用的位運算方法不是最佳的,也可以不用遞歸操作,大家可以自行對程序進行優化。

*思考題
將任意正整數轉換為四進制或八進制數。

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青草国产精品亚洲专区无| 成人动漫视频在线| 亚洲一区在线观看视频| 欧美激情综合网| 国产欧美精品一区| 亚洲国产成人私人影院tom| 国产欧美一区二区精品秋霞影院| 国产精品第13页| 中文字幕电影一区| 综合激情成人伊人| 亚洲一区二区三区国产| 亚洲色大成网站www久久九九| 国产馆精品极品| 丁香激情综合五月| 91麻豆免费看| 制服视频三区第一页精品| 4hu四虎永久在线影院成人| 日韩欧美一区在线观看| 日韩欧美亚洲另类制服综合在线| 午夜欧美2019年伦理| 亚洲国产精品欧美一二99| 日韩一区欧美二区| 精品一区二区免费视频| 国产成人精品aa毛片| 91视频观看视频| 4438x亚洲最大成人网| 91麻豆精品国产91久久久久久| 国产传媒欧美日韩成人| 99国产精品国产精品毛片| 色拍拍在线精品视频8848| 欧美日韩一级二级| 久久综合九色综合97_久久久| 91一区二区在线| 欧美午夜免费电影| 2021久久国产精品不只是精品| 911国产精品| 中文字幕欧美日韩一区| 日本成人超碰在线观看| 成人看片黄a免费看在线| 欧美丰满少妇xxxxx高潮对白| 丁香婷婷综合色啪| 欧美日韩的一区二区| 国产人妖乱国产精品人妖| 亚洲欧美视频一区| 韩国理伦片一区二区三区在线播放 | 在线视频国产一区| 久久综合丝袜日本网| 一区二区欧美精品| 国产aⅴ综合色| 制服丝袜亚洲色图| 国产精品不卡在线观看| 久久99久久99精品免视看婷婷 | 欧美中文字幕一区| 精品国产91九色蝌蚪| 一区二区三区不卡视频在线观看 | 欧美丝袜自拍制服另类| 精品国产免费一区二区三区四区| 日韩精品一区二区三区老鸭窝 | 国产精品99久久久久| 9191精品国产综合久久久久久 | 日韩高清在线观看| 成人av影视在线观看| 精品不卡在线视频| 蜜臀久久99精品久久久久久9 | 亚洲一区二区三区激情| 99亚偷拍自图区亚洲| 国产日韩欧美一区二区三区乱码 | 国产精品久久福利| 国产高清亚洲一区| 久久亚洲一级片| 精品一区二区三区不卡| 91麻豆精品91久久久久同性| 亚洲精品国产一区二区精华液 | 国产一区在线看| 日韩一区二区电影在线| 亚洲国产精品天堂| 91精品国产全国免费观看 | 国产亚洲欧美日韩在线一区| 日本免费新一区视频| 欧美一区二区免费视频| 三级一区在线视频先锋| 91精品黄色片免费大全| 免费在线观看一区二区三区| 日韩欧美国产一区二区三区| 午夜精品久久久久久不卡8050 | 国产欧美精品区一区二区三区| 中文子幕无线码一区tr| 国产成人精品aa毛片| 久久久亚洲综合| 岛国一区二区三区| 亚洲色图制服诱惑| 欧美偷拍一区二区| 免费亚洲电影在线| 久久综合色8888| 95精品视频在线| 日韩成人一级大片| 国产视频一区在线观看| 91原创在线视频| 日韩精品电影在线观看| 精品卡一卡二卡三卡四在线| 韩国女主播一区| 亚洲欧美激情插| 欧美一区2区视频在线观看| 极品美女销魂一区二区三区免费| 91在线porny国产在线看| 午夜精品久久久久久久蜜桃app| 久久99久久99小草精品免视看| 一本大道久久a久久综合婷婷| 日韩欧美二区三区| 波多野结衣一区二区三区 | 精品国产不卡一区二区三区| 国产成人av在线影院| 亚洲综合av网| 久久蜜桃av一区精品变态类天堂| 亚洲精品中文在线观看| 欧美一区二区三区播放老司机| 亚洲日本va午夜在线电影| 欧美电影一区二区| 国产成人免费av在线| 夜色激情一区二区| 欧美国产精品劲爆| 欧美一区二区三区四区视频| 9久草视频在线视频精品| 美国精品在线观看| 亚洲人精品一区| 久久久久久久久97黄色工厂| 欧美日韩视频在线第一区 | 国产精品亚洲一区二区三区妖精 | 日韩精品成人一区二区在线| 2021国产精品久久精品| 欧美乱熟臀69xxxxxx| 99久久国产综合色|国产精品| 国产精品污网站| 欧美色爱综合网| 99久久伊人精品| 国产呦精品一区二区三区网站| 欧美精品一区二区三区久久久| 日日夜夜免费精品视频| 亚洲色图色小说| 亚洲国产激情av| 久久久国产一区二区三区四区小说| 亚洲成av人片在线观看无码| 国产精品美日韩| 国产亚洲欧美一级| 久久久久久综合| 精品欧美久久久| 精品欧美久久久| 欧美专区日韩专区| 欧美亚洲国产一区二区三区 | 日本一区二区在线不卡| 欧美大片一区二区三区| 91精品国产乱| 欧美日韩一区视频| 欧美日韩和欧美的一区二区| 色av成人天堂桃色av| 91年精品国产| 欧美性感一类影片在线播放| 一本大道av伊人久久综合| 99久久精品国产精品久久| 91视频观看视频| 欧美亚洲禁片免费| 91精品国产综合久久精品性色 | 1000精品久久久久久久久| 亚洲国产精品成人久久综合一区| av爱爱亚洲一区| 91看片淫黄大片一级在线观看| 午夜精品福利一区二区蜜股av | 色狠狠色狠狠综合| 91黄色激情网站| 69堂成人精品免费视频| 精品国产123| 国产精品素人一区二区| 国产精品乱码一区二三区小蝌蚪| 欧美日本视频在线| 欧美xxx久久| 国产精品国产三级国产aⅴ原创| 精品视频在线免费看| 欧美一区二区在线免费播放| 日韩欧美美女一区二区三区| 久久嫩草精品久久久久| 亚洲欧洲精品一区二区三区| 一区二区三区欧美视频| 美国毛片一区二区三区| 99热99精品| 日韩一级片在线观看| 国产日韩欧美亚洲| 亚洲一区在线免费观看| 国产宾馆实践打屁股91| 欧美亚洲一区二区在线观看| 久久久综合激的五月天| 亚洲午夜免费电影| 国产精品一区免费视频| 欧美色综合天天久久综合精品| www.日本不卡| 欧美猛男超大videosgay| 国产欧美日韩另类一区| 偷拍与自拍一区| 成人av中文字幕| 日韩无一区二区| 亚洲最色的网站|