第11次作业
一、实验内容
1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)
#include <stdio.h> #include <string.h> #define N 100 int main() { char cstr[N]; int i,a=0,b=0,c=0,d=0,e=0; gets(cstr); for(i=0;cstr[i]!='\0';i++) { if(cstr[i]>'A'&&cstr[i]<='Z') { a++; } else if(cstr[i]>='a'&&cstr[i]<='z') { b++; } else if(cstr[i]>='0'&&cstr[i]<='9') { c++; } else if(cstr[i]==' ') { d++; } else { e++; } } printf("大写字母%d个,小写字母%d个,数字%d个,空格%d个,其他符号%d个:\n",a,b,c,d,e); return 0; }
2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。
#include<stdio.h> #include<string.h> #define n 100 int main() { char password[]="secret",input[n]; int i,d=2; for(i=0;i<3;i++) { printf("please input the password\n"); scanf("%s",input); if(strcmp(password,input)==0) { printf("密码正确,登陆成功:\n"); } else { printf("密码错误,登录失败,允许再输入%d次",d); d--; } } return 0; }
3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。
#include <stdio.h> #include <string.h> #define N 100 int panduan(char a[]); int main() { int m; char a[N]; printf("输入一个字符串:\n"); gets(a); m=panduan(a); if(m==0) printf("此字符串不是回文数\n"); else if(m==1) printf("此字符串是回文数\n"); return 0; } int panduan(char a[]) { int i=0,j=0,m=1; for(i=0;a[i]!='\0';i++) { j++; } j=j-1; for(i=0;i<j;i++,j--) { if(a[i]!=a[j]) { m=0; break; } else { m=1; } } return m; }
二:实验总结
1:在第二题中遇到了对于for循环的应用,没有搞清楚for循环的过程,还需要加强
2:对于第三题的赋初值的问题,下面还要搞清楚一下
三:课程总结
这学期写了多少代码也不记得了,反正可是写了,做作业时再写一遍,就拿那次函数的提,还没写完就已经写了超出一百行了,这样看来也很多了,一开始对c语音很陌生,不过现在对于c语言有了一定的了解,有时候写了个小游戏,发现c语音也很有趣啊。我的经验就是大家要弄好那几种语言,懂得循环,才能更好的学好c语言,自己要在课余时间深加体会,只靠老师是往往不行的,我们还要学会自己慢慢领会。对于写博客,我觉得很好,这样不仅可以让老师看到我们的平时作业存在的问题,而且c语言,也就是编程,只是在纸上写那就是纸上谈兵,我们要在电脑上多加练习,才能有所提高。对于助教,先在这里很感谢他们,也希望多些助教帮助老师,减轻老师负担,更好的帮助我们学生学习。最后说一句,老师,助教辛苦了!!!