1.输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)
#include<stdio.h> int main() { char a[30]; int x=0,y=0,z=0,ix=0,i; gets(a); for(i=0;i<30;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]==' ') { ix++; } else continue; } printf("小写字母%d个,大写字母%d个,数字%d个,空格%d个",x,y,z,ix); }
2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。
#include<stdio.h>
#include<string.h>
int main()
{
int i,ii,iii=0;
char a_i[7],a_ii[7];
printf("请输入密码");
gets(a_i);
for(i=0;i<3;i++)
{
gets(a_ii);
ii=strcmp(a_i,a_ii);
if(ii==0)
{
printf("输入正确
");
iii=1;
break;
}
if(iii==0&&i<2)
{
printf("输入错误,请重新输入
");
}
}
if(i==3&&iii==0)
{
printf("输入错误
");
}
}
3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。
#include<stdio.h> #include<string.h> #define N 11 int qurey(char a[]); int main() { int i; char a[N]; gets(a); i=qurey(a); if(i==1) { printf("非回文"); } else { printf("回文"); } } int qurey(char a[]) { int i,j; j=strlen(a)-1; for(i=0;i<j;j--,i++) { if(a[i]!=a[j]) return 1; } return 0; }
二、实验总结
1、gets在运用的时候一定要注意别越界,不行就用scanf......
三、课程体会
1、落实的代码大概一千多吧,平时不怎么注意这个......
关于c语言的认识嘛,嗯,要我说,工具,很重要的工具,但也只是工具。一个程序的设计,思想是最重要的,语言只是一种表达形式而已。当然,没有语言,算法也只是空谈。就好像理论上(冯诺依曼体系)电脑只要具备三个设备就可以运作,但实际上少了输入和输出设备的话,根本没法用。
2、不要把注意力放在一条条的代码上。那不重要。多思考算法。不要墨守成规。
3、博客的形式真的很好。既有督促作用,又促进了信息交流,可以让大家互相学习。改进的意见倒是想不出来。自然,我会推荐的。
4、老师和助教是真心提不出意见来......真的很负责!非常感谢!