Road to Coder _練習

周次算法

學習時間函數

新編寫代碼行數學習

博客量(篇)ui

學到知識點spa

         

第15周code

0.5hblog

 85字符串

1get

函數'及算法加深input

#include"stdio.h"
#include"string.h"

main()
{
char string[20];
char c;
int word=0,num=0,i;

printf("請輸入一個句子:");
gets(string);

for(i=0;(c=string[i])!='\0';i++)//結束條件:字符串結束符
{
if(c==' ')word=0;//判斷字符前是不是空,若是不是,則單詞計數+1
else if(word==0)
{
word=1;//標誌置1;表明這個字符前面是個鏈接的符
num++;    
}    
}    
printf("這句子裏有%d個單詞。",num);

 

  

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

漢諾塔是根據一個傳說造成的一個問題:有三根杆子A,B,C。A杆上有N個(N>1)穿孔圓盤,盤的尺寸由下到上依次變小。要求按下列規則將全部圓盤移至C杆:提示:可將圓盤臨時置於B杆,也可將從A杆移出的圓盤從新移回A杆,但都必須尊循上述兩條規則。問:如何移?最少要移動多少次?

 1 #include<stdio.h>
 2 
 3 
 4 main() 
 5 {
 6 int n;
 7 printf("Please input tier of the hanoi:");
 8 scanf_s("%d",&n);
 9 hanoi(n,'A','B','C');
10 getch();
11 }
12 
13  
14 
15 hanoi(int n, char a, char b, char c)
16 {
17 if (n == 1) printf("\t%c --> %c\n",a,c);//如只有一層,直接A-》C;
18 else
19 {
20 hanoi(n - 1, a, c, b);//(1)     把n-1個盤子由A 移到 B;             
21 
22 printf("\t%c --> %c\n",a,c);//(2)     把第n個盤子由 A移到 C;
23 hanoi(n - 1, b, a, c);//(3)     把n-1個盤子由B 移到 C;
24 }
25 }
26 
27 運行結果:
28 
29 Please input tier of the hanoi:3
30 A --> C
31 A --> B
32 C --> B
33 A --> C
34 B --> A
35 B --> C
36 A --> C

 

 

/////////////////////////////////////////////////////////////////////////////////////////////////////////

//舍罕王失算(麥子)

故事: 
相傳如今流行的國際象棋是古印度舍罕王(Shirham)的宰相達依爾(Dahir) 發明的。舍罕王十分喜好國際象棋,決定讓達依爾本身要求獲得什麼賞賜。這位聰明的宰相指着8×8共64格的象棋盤說:」陛下,請你賞給我一些麥子吧,就在棋盤的第1格中放1粒,第2格中放2粒,第3格中放4粒,之後每一格都比前一格增長一倍,一次放完棋盤上的64格,我就感恩不盡了。「 
舍罕王讓人扛來了一袋麥子,他要兌現達依爾的許偌。。。請問,舍罕王能兌現他的許偌嗎?

擺放完棋盤上的64格共需多少麥子?這些小麥合多少噸(1噸小麥約2.4e7粒)?這些小麥至關於世界糧食年總產量(以2014年度數據2.48e9噸計算)的多少倍?

main()
{
double t, v, p, s;
int i, n;

printf("請輸入格數n:");
scanf_s("%d",&n);

t = 1; s = 1;
for (i = 2; i <= n; i++)
{
t = t*2;//進行計算
s = s + t;
}
v = s / 2.4e7;//求噸數
p = v / 2.48e9;//世界糧食產量的倍數
if (n <= 40)printf("總麥子數量爲:%。0f\n", s);
else 
printf("格數n爲%d的麥子數量爲%.3e\n",n,s);//就是計算量有點大,輸出的時候須要仔細確認,我是錯了很久才調好的;
printf("這些糧食重量爲:%.0f噸。\n",v);
printf("約等於世界糧食產量的%.0f倍",p);
getch();
}

 

運行結果:

請輸入格數n:64
格數n爲64的麥子數量爲1.845e+19
這些糧食重量爲:768614336405噸。
約等於世界糧食產量的310倍

////////////////////////////////////////////////////////////////////////////////////////////

最近考試什麼的沒能自覺的敲代碼,致使這星期除了上課沒什麼敲,上面都是以前敲的就拿出來頂一下。

                                                                                                By Genmer-Visual Stduio 2017 Programming 

相關文章
相關標籤/搜索