第十一次作业
1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)
# include <stdio.h> # include <string.h> # define N 100 int main() { int i,a=0,b=0,c1=0,d=0,e=0; char c[N]; gets(c); for(i=0;c[i]!='\0';i++) { if(c[i]>='A'&&c[i]<='Z') { a++; } else if(c[i]>='a'&&c[i]<='z') { b++; } else if(c[i]==' ') { c1++; } else if(c[i]>='0'&&c[i]<='9') { d++; } else { e++; } } printf("大写字母%d个,小写字母%d个,空格%d个,数字%d个,其他字符%d个\n",a,b,c1,d,e); return 0; }
2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。
# include <stdio.h> # include <stdlib.h> # include <string.h> int main() { int number=3; char code1[7],code2[7]; printf("请设置密码(6位数):\n"); gets(code1); printf("请输入登录密码:\n"); while(number!=0) { gets(code2); if(strcmp(code1,code2)==0) { printf("密码正确\n"); break; } else { printf("密码错误,你还有%d次机会\n",--number); } } return 0; }
3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。
# include <stdio.h> # include <string.h> # define N 100 int judge(char c[N]); int main() { int i; char c[N]; i=judge(c); if(i==0) { printf("不回文\n"); } else { printf("回文\n"); } return 0; } int judge(char c[N]) { int i,j=-1,x=1; gets(c); for(i=0;c[i]!='\0';i++) { j++; } for(i=0;i<=j;i++,j--) { if(c[i]!=c[j]) { x=0; break; } } if(x==0) { return 0; } else { return 1; } }
(二)实验总结:
1.用gtes()输入时回车会自动存为\0,用scanf时不会;
2.用puts()输出时遇到\0会自动结束输出;
3.赋值时像char a[10]={'1','2'};后面的位置自动存为\0;
4.赋值时可以a[6]="hello",字母不用一个一个的分开写,但要注意定义的数组长度要比输入的多一个,因为最后一位自动存\0。
(三)课程体会
1.这个学期一共写了3000多行代码,利用c语言我们可以编写一些简单实用的小程序;
2.c语言大部分都是用数学方法来完成的,想学好c语言必须得把数学学好;每次学了新知识我们在运用都方面都显得不熟练,所以自己要多练,争取每天至少写一个程序;
3.利用博客可以很好的记录我们的作业情况,复习时便于观看,而且只要有网我们可以随时看自己过去写过的程序;对于改进方面应该在交作业时每修改提交一次就把他交作业的位置调到当前的最后一名,防止占坑行为,并且只有提交完美的作业(自己认为不需要再修改的作业)才算是真正的交了作业;我会给下一届的学弟学妹推荐这种教学形式;
4.建议:除了平时的作业外,每天都留一道比较简单的程序。