第十一次作业
1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)
#include<stdio.h> #define N 100 int main() { char a[N]; int i,x=0,y=0,z=0,j=0,l=0; printf("请输入一串字符"); gets(a); for(i=0;a[i]!='\0';i++) { if(a[i]>='A'&&a[i]<='Z') { x++; } else if(a[i]>='a'&&a[i]<='z') { y++; } else if(a[i]>='0'&&a[i]<='9') { z++; } else if(a[i]==' ') { j++; } else { l++; } } printf("大写字母的个数是%d,小写字母的个数是%d,数字的个数是%d,空格的个数是%d,其他的个数是%d",x,y,z,j,l); return 0; }
2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。
#include<stdio.h> #include<string.h> int main() { char password[8]="zpllxya"; char input[9]; int i=3; for(i=3;i>0;i--) { printf("请输入密码"); scanf("%7s",input); if(strcmp(password,input)==0) { printf("登陆成功!\n"); break; } else { printf("登录失败,你还有%d次机会",i-1); } } return 0; }
3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。
#include <stdio.h> # define M 100 # include <string.h> int hw(char c[]); int main() { int i; char c[M]; printf("请输入字符串\n"); gets(c); i=hw(c); if(i==0) { printf("这串字符不是回文序列\n"); } else { printf("这串字符是回文序列\n"); } return 0; } int hw(char c[]) { int i,j=-1; for(i=0;c[i]!='\0';i++) { j++; } for(i=0;i<j;i++,j--) { if(c[i]!=c[j]) { return 0; } } return 1; }
实验总结:输入字符的时候一定要记住单引号,gets后边是(),而不是[];
字符串结束标志是'\0'
课程体会:1、这学期写了差不多有1500行吧。在暑假的时候听同学说C会有点难,然后有些哥姐说C语言跟逻辑思维啥的联系会很多大。作为一个并没有逻辑思维的人,刚开始的时候觉得这么多英文肯定会很难,的确在刚开始写的时候有点困难,也不知道怎么写,无所下手。到现在看到一个题目虽然不能一下子全都写出来,但是比之前也好很多了。
2、在写C语言的时候首先要把思路整理好,也可以把思路在纸上,这样也可以更清晰。如果看到题目的时候一点思路都没有的时候也可以借鉴别人,但是不是抄,而是看一下别人的思路,然后自己再试着去写。
3、很喜欢这样的交挺好的,而且还能促进学生的积极性,能让同学借鉴借鉴其他同学的思路。
4、老师跟助教都挺好的,必须要跟你们说一声谢谢。真的帮助了我们很多,帮我们并及时改正错误。