第十一次作业
一、实验内容
1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)
1 #include<stdio.h> 2 int main() 3 { 4 int i,j,a=0,b=0,c=0,d=0,e=0; 5 char str[100]; 6 printf("请输入字符:"); 7 gets(str); 8 for(i=0;str[i]!='\0';i++) 9 { 10 if((str[i]>='a')&&(str[i]<='z')) 11 { 12 a++; 13 } 14 else if((str[i]>='A')&&(str[i]<='Z')) 15 { 16 b++; 17 } 18 else if((str[i]>'0')&&(str[i]<'9')) 19 { 20 c++; 21 } 22 else if(str[i]=' ') 23 { 24 d++; 25 } 26 else 27 { 28 e++; 29 } 30 } 31 printf("小写字母%d个,大写字母%d个,数字%d个,空格%d个,其他%d个",a,b,c,d,e); 32 return 0; 33 }
2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。
#include <stdio.h> #include <string.h> int main() { int i; char password[8],input[8]; printf("please input the password\n"); gets(password); for(i=0;i<3;i++) { gets(input); if(strcmp(password,input)==0) { printf("welcome!"); break; } else { printf("wrong password!\n"); } } return 0; }
3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。
1 #include<stdio.h> 2 int main() 3 { 4 int i,j=-1; 5 char str[100]; 6 printf("输入字符:"); 7 gets(str); 8 for(i=0;str[i]!='\0';i++) 9 { 10 j++; 11 } 12 for(i=0;i<j;i++,j--) 13 { 14 if(str[i]!=str[j]) 15 { 16 printf("不是回文数"); 17 return 0; 18 } 19 } 20 printf("是回文数"); 21 return 1; 22 }
(二)实验总结(实验中遇到的问题及解决方法)
1. 输入字符串要用gets,但是不用加【】因为他们本身即是地址
2. 每个字符串以\0结尾,要预留一个多余的位置。
(三)课程体会(请回答以下问题)
1. 经过一个学期的学习,你统计过一共写了多少行代码吗?与开学初相比,你对C语言或者程序设计有了哪些认识和理解?
我写了大概1400行,与开学相比,我发现现在的题难多了,不过写出来后会有成就感。
2. 在C语言的学习过程中,你有什么经验和教训分享给大家?
我觉得我的经验不足,大家可以多问问陶旭和王佳诺。
3. 对于采用技术博客提交作业这种形式,你有什么看法,对你有帮助的地方在哪里?你觉得还可以做哪些改进?,如果下一届的学弟学妹们入学了,你会给他们推荐这种教学形式吗?
我对于简单高效的方法是十分推崇的,我觉得可以看到大家的想法,也可以了解他们做题是的思路,如果下学期学妹们来了,我会优先询问他们的意见,虽然没有用嘿嘿。
4. 对于这门课程,对于老师和助教的工作,你有什么好的建议或者意见,都可以提出来,我们一起改进。
我觉得老师与助教很辛苦,但是我们也希望看到老师与助教是怎么样做题的,对我们会有帮助。
5.请大家将自己的博客进行整理,从第一次作业开始(包括你的自我介绍哦,没有写的同学,欢迎补上),将所有博客内容包括评论保存到word文档中,然后发到我的邮箱或者上传到群里,一定要注明姓名。我会整理成一本博客书,留作课程资料,也会分享给大家留作纪念。(此项任务截止日期12.24)