为备考二级C语言做的代码练习---辅导资料《C语言经典编程282例》--(1)
因為二級考試的時候用的C語言編譯器是VC++6.0 真是日了狗了 用這個編譯器 這是我第2個C編譯器吧,第一個用的是啊哈C編譯器..第二個是VS++6.0 然后在win下用VS2013感覺挺不錯的 畢竟是做大開發的軟件 代碼補全,和格式,字體,還可以換代碼的背景,各種功能,就是對新手來說,你用scanf它不讓你用,讓你用scanf_s,因為它覺得這樣比較安全,避免一些XX溢出云云的,還有gets要寫成gets_s() 之類的,我在想要是我一直用VS2013 那考試的時候寫的代碼也是這種格式的...我肯定VS6.0會報錯,然后我還要找錯,這就耽擱了考試的寶貴時間了!,所以我決定這本書的編譯器就用VC++6.0了,感覺和用vim差不多...單看代碼補全這快的話... 考完二級C..我肯定能考過!!!(士可鼓不可泄)然后就讓VC++6.0 bye bye了
2015年11月29日04:52:00代碼練習開始~~~啦
1 //3個數字從小到大排序 我還是不太清楚怎么排序的 老暈 大概明白了 我也背會了!#include<stdio.h> 2 int main () 3 { 4 int a,b,c,t; 5 printf("Please input a,b,c;\n"); 6 scanf("%d %d %d",&a,&b,&c); 7 8 if(a>b) 9 { //a b值通過t互換 10 t=a; 11 a=b; 12 b=t; 13 } 14 if(a>c) 15 {//a c 值通過t互換 經過a和b和c比較后 a若為最大值就放在最后面 16 t=a; 17 a=c; 18 c=t; 19 } 20 21 if(b>c) 22 { //b和c再比較 最大值放在后面 23 t=b; 24 b=c; 25 c=t; 26 } 27 printf("The order of the number is:\n"); 28 printf("%d %d %d ",a,b,c); 29 return 0; 30 }
?
//猴子吃桃問題#include<stdio.h> int main () {int day,x1,x2;day=9; //記錄天數的變量x2=1; //第10天桃子數量while(day>0)//9 8 7 6 5 4 3 2 1 {x1=(x2+1)*2;//1.猴子吃桃數+1得到原本的一半數量 2.然后X2得到原本數量 也就是前一天桃子所剩下的數量 猴子是先吃1半再吃1個 ------>>>>我們逆著算就要先+1算出他吃一半的數量 然后x2得到它吃的數量 我他媽終于弄明白了!x2=x1;day--;}printf("the total is %d\n",x1);return 0; }
/* 我自己寫的一句printf用來打印桃子天數和桃子數量的值 不過這句代碼沒貼在上面
第9天桃子數量為4
第8天桃子數量為10
第7天桃子數量為22
第6天桃子數量為46
第5天桃子數量為94
第4天桃子數量為190
第3天桃子數量為382
第2天桃子數量為766
第1天桃子數量為1534
Press any key to continue
?
//濤濤買蘋果..濤濤每天買蘋果 每個蘋果0.8元 濤濤第一天買2個 第二天開始買前一天的2倍 直到購買蘋果個數不超過100的最大值 <100//n為個數變量 每過一天(day++) n*2 每天x2 買蘋果的數量為2 4 8 16 32 64 128 我又加了一個輸出濤濤蘋果數量的程序
#include<stdio.h> int main () {int n=2,day=0; //第一天個數 和天數float money=0,ave;while(n<100){money=money+0.8*n;day++;n*=2; //n每次x2 }ave=money/day;
printf("我是個傻逼我天天買蘋果..我是濤濤 我買了%d個蘋果",n/2);//因為n退出循環后 是因為n>或者是=100 是因為多X了一次2 所以要/2才能得到濤濤買蘋果的數量printf("The result is %.6f",ave);return 0; }//我是個傻逼我天天買蘋果..我是濤濤 我買了64個蘋果 //The result is 16.799999
/*
買的蘋果數量為64 共花了100.80元錢,平均每天花了14.40元錢
蘋果數=2 money=1.600000 天數=1
蘋果數=4 money=4.800000 天數=2
蘋果數=8 money=11.200000 天數=3
蘋果數=16 money=24.000000 天數=4
蘋果數=32 money=49.599998 天數=5
蘋果數=64 money=100.799995 天數=6
買的蘋果數量為64 共花了100.799995元錢,平均每天花了14.399999元錢?
*/
2015年11月30日04:07:10 接著練了!!!每天練幾道!
1 #include<stdio.h> 2 /* 3 求一個整數任意次方后的最后三位數字 4 5 */ 6 7 int main () 8 { 9 int i,x,y,z=1; 10 printf("請輸入兩個數,x和y(y是x的冪):\n"); 11 scanf("%d %d",&x,&y); 12 for(i=1;i<=y;i++) 13 { 14 z=z*x%1000; 15 if(z>=100) 16 { 17 printf("%d%d的最后三位數是:%d",x,y,z); 18 } 19 else 20 { 21 printf("%d%d的最后三位數是:%d",x,y,z); 22 } 23 } 24 25 return 0; 26 } 27 /* 28 算法分析: 29 y為x的冪 z用來保存這個整數任意次方后的最后三位數字 30 試數字 31 1234的2次方為 1 522 756 32 1》 x=1234 y=2 33 i=1 i<=2 34 z=z*1234%1000=234 35 z>100 36 i++=2 37 38 2》z=234*1234%1000=756 39 40 疑惑: 41 為什么要判斷z的值是否大于或者等于100呢? 42 還有為什么這個數的最后三位數x這個數的結果的最后三位數 就是這個數平方積的最后三位數了 這是一個公式嗎? 43 234 * 1234 % 1000 44 */根據上面代碼的功能的一次改進,因為都是求一個數的任何冪的最后三位數,上面的代碼我愣是沒看懂..不過以后會看懂的,多練,怕啥.又不是啥國際性數學難題,世界上解出來的沒有幾個人。我自己寫的這個代碼如下
注意:編譯器用的VS2013 注意scanf_s 要是其他編譯器上跑的話 要改成scanf 因為實在受不了VC++6.0的環境..感覺不舒服 就暫時用下VS2013~~
1 /* 2 這個是我自己寫的也是求任意次方的最后三位數 3 1.求出這個任意次方后的結果 4 2.判斷這個數有多少位 3位數的話就輸出這個數字 小于3位數就提示輸出的數次方的位數小于3位數是x位數 5 3.大于3位數的話 就輸出這個數的最后三位數 6 */ 7 #include<stdio.h> 8 #include<Windows.h> 9 int main() 10 { 11 //求一個數字任意次方后的最后三位數字 12 int n, y,i,m=1;//y為n的冪 i為循環變量 m保存次方后的結果變量 13 int result;//存放結果變量 14 int dight = 0;//存放位數的變量 15 int m_temp;//用來求位數的時候使用 16 printf("請輸入n的值以及n的冪:\n"); 17 scanf_s("%d %d",&n,&y); 18 19 //3 3 20 for (i = 1; i <=y; i++) //1 2 21 { 22 //本循環用來計算這個數次方后的結果 23 m = m*n; 24 } 25 m_temp = m; 26 //判斷這個數有多少位數的for循環 27 28 while (m_temp != 0)//m=224 29 { 30 m_temp= m_temp / 10;//22 |2 0 31 dight++;//1 |2 |3 32 } 33 34 35 if (dight < 3) 36 { 37 printf("本程序用來計算一個數的任何次方的末尾的三個數字,而通過計算,您輸入的這個數字次方的結果小于3位數 它只有:%d位數\n", dight); 38 } 39 else if (dight == 3) 40 { 41 printf("這個數的次方結果為一個三位數,所以程序將為您輸出這個數的全部部分%d\n", m); 42 } 43 44 else if (dight>3) 45 { 46 result = m % 1000; 47 printf("%d的%d次方的結果是%d %d的最后三位數是%d", n, y, m, m, result); 48 } 49 50 system("pause"); 51 return 0; 52 }?
轉載于:https://www.cnblogs.com/dire/p/towc.html
總結
以上是生活随笔為你收集整理的为备考二级C语言做的代码练习---辅导资料《C语言经典编程282例》--(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我们一直使用的管理系统oner
- 下一篇: C++11 智能指针unique_ptr