Road to Coder _练习

周次

学习时间

新编写代码行数

博客量(篇)

学到知识点

         

第15周

0.5h

 85

1

函数'及算法加深

#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 

 

posted @ 2017-12-24 02:15  肖生克的救赎  阅读(169)  评论(1编辑  收藏  举报