周次 |
学习时间 |
新编写代码行数 |
博客量(篇) |
学到知识点 |
第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 #include2 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