首页 > 代码库 > 第十一次作业

第十一次作业

一、实验内容

1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)

代码

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define N 999
 4 int main()
 5 {
 6     int i,a=0,b=0,c=0,d=0,e=0;
 7     char str[N];
 8     printf("请输入一个字符串:\n");
 9     gets(str);
10     for(i=0;str[i]!=\0;i++)
11     {
12         if(str[i]>=A&&str[i]<=Z)
13         {
14             a++;
15         }
16         else if(str[i]>=a&&str[i]<=z)
17         {
18             b++;
19         }
20         else if(str[i]>=0&&str[i]<=9)
21         {
22             c++;
23         }
24         else if(str[i]== )
25         {
26             d++;
27         }
28         else
29         {
30             e++;
31         }
32     }
33     printf("大写%d个,小写%d个,数字%d个,空格%d个,其他%d个\n",a,b,c,d,e);
34     return 0;
35 } 

运行结果

技术分享

2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<string.h>
 4 int main()
 5 {
 6     int time=3;
 7     char password[]="fengrunfa",input[10];
 8     printf("Mission:Input the password and you have only 3 chance.\n");
 9     do
10     {
11         gets(input);    
12         if(strcmp(password,input)==0)
13         {
14             printf("Mission success,well done!\n");
15             break;
16         }
17         else
18         {
19             printf("Mission failed,try again\n");
20             time--;
21         }
22     }while(time!=0);
23     return 0;
24 }

运行结果

技术分享

3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。

 1 # include <stdio.h>
 2 # include <string.h>
 3 # define N 999
 4 int judge(char str[N]);
 5 int main()
 6 {
 7     int i;
 8     char str[N];
 9     printf("请输入字符串:\n");
10     i=judge(str);
11     if(i==1)
12     {
13         printf("字符串回文\n");
14     }
15     else
16     {
17         printf("字符串不回文\n");
18     } 
19 return 0;    
20 } 
21 int judge(char str[N])
22 {
23     int i,j=-1;
24     gets(str);
25     for(i=0;str[i]!=\0;i++)
26     {
27         j++;
28     }
29     for(i=0;i<=j;i++,j--)
30     {
31         if(str[i]==str[j])
32         {
33             return 1;
34         }
35         else
36         {
37             return 0;
38         }
39     }
40 }

运行结果

技术分享

知识点总结

scanf不能接受空格、制表符Tab、回车等;而gets能够接受空格、制表符Tab和回车等;scanf能限制字符串长度,gets不能

实验总结

strcmp不能拼错

课程体会

我自己感觉初学代码像学数学题一样,解题模式学会了,自然就学会了;PPT如果能在课前发的话,学生们能提前了解这节课的大体内容,上课会有针对性的听那些看不懂的地方;

课上最好能够让学生在下边操作,模仿例题,学生们知道怎么做之后,再解释为什么,我自己感觉一开始就说太专业的术语,学生们理解起来也会有点困难,并且感到枯燥;

就像我刚开始看电脑报的时候,那些硬件名称根本看不懂,感觉也没啥意思,后来接触一些大型单机游戏,对电脑有要求配置,知道CPU显卡内存条是干什么用的后,再拿起电脑报,看那些SSD,HDD,ddr4,i7 6700HQ,就知道那是什么意思了,

更重要的是,我也找到了看电脑报的乐趣,了解最新的科技动向,以后只要有机会就会看看

这只是我自己对代码的理解,或许只适合我自己吧,游戏也都是靠代码一串串的写出来的,为什么不能把代码看作是一个游戏,熟悉它的每一个函数的意义,熟练操作并练习上手呢?

现在玩游戏玩多了感觉游戏就是一串数据,只是不同的游戏复杂程度不同而已,或许下一阶段,我会对怎么制作游戏以及应用程序更加感兴趣一些吧

最后,也感谢老师这半年的谆谆教诲,上面这些只是我自己的一些认知感想,希望对老师有所帮助,有的地方可能说的不太恰当,也望老师多多包涵

 

第十一次作业