作业十一
第一题:
#include<stdio.h> #define n 100 int main() { char a[n]; int i,a1=0,b=0,c=0,d=0; printf("输入字符串:\n"); gets(a); for(i=0;a[i]!='\0';i++) { if(a[i]>='A'&&a[i]<='Z') { a1++; } else if(a[i]>='a'&&a[i]<='z') { b++; } else if(a[i]>='0'&&a[i]<='9') { c++; } else { d++; } } printf("大写字母有%d个,小写字母有%d个,数字有%d个,其他符号有%d个.\n",a1,b,c,d); return 0; }
第二题:
#include<stdio.h> #include<string.h> #define n 100 int main() { char a[n],b[n]; int i,c,d=3; printf("设置一个密码\n"); gets(a); printf("输入密码,你有三次机会验证。\n"); do { gets(b); if(strcmp(a,b)==0) { printf("密码正确\n"); break; } else if(d!=1) { printf("密码错误,剩余%d次。\n",d-1); d--; } else { printf("密码错误,没有机会了。\n"); break; } }while(d!=0); return 0; }
第三题:
#include<stdio.h> #define n 100 int bijiao(char a[]); int main() { int i,j; char a[n]; printf("输入一个英文字符串\n"); gets(a); if(bijiao(a)) { printf("是回文数\n"); } else { printf("不是回文数\n"); } } int bijiao(char a[]) { int j=-1,i; for(i=0;a[i]!='\0';i++) { j++; } for(i=0;i<j;i++,j--) { if(a[i]!=a[j]) { return 0; } } return 1; }
实验总结:
1:判断数组循环时要带上数组名 例如:a[i]。
2:可以使用特定的函数进行数组间的运算,省时又方便。
3:字符串的scanf不用加“&”,前边要用%s。
4:合理使用gets和puts。
课程体会:
1:这个真的数不清了,反正很多很多,感觉非常有成就感。学习之前只听说过代码这个名字,并且知道是一行行的字符,现在可以通过自己编写实现想要实现的功能。
2:经验教训:下课多看书,把书读透,多翻翻ppt,了解要点,多写代码,还有上课千万不能走神,更不能睡觉,否则你就毁了。
3:可以督促我按时交作业,我是一个自控能力较差的人。。。。我觉得没有什么需要改进的了,这样的模式就很好啊,当然我会推荐给学弟学妹们。
4:倒不是恭维,老师助教你们做的真的很好了,写代码到大半夜问你们问题也会在第一时间回复,辛苦你们了。