第十一次作业
(一)实验内容
1.实验要求:输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)
1.1 代码:
#include <stdio.h>
#include <string.h>
#define N 100
int main ( )
{
int i,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;
char a[N];
printf("请输入一串字符\n");
gets(a);
for(i=0;i<strlen(a);i++)
{
if(a[i]>='A'&&a[i]<='Z')
{
sum1++;
}
else if(a[i]>='a'&&a[i]<='z')
{
sum2++;
}
else if(a[i]>='0'&&a[i]<='9')
{
sum3++;
}
else if(a[i]==' ')
{
sum4++;
}
else
{
sum5++;
}
}
printf("大写字符有%d个\n小写字符有%d个\n数字有%d个\n空格有%d个\n其他字符有%d个\n",sum1,sum2,sum3,sum4,sum5);
return 0;
}
1.2 程序运行结果:

2.利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。
2.1 代码:
#include <stdio.h>
#include <string.h>
int main()
{
int a;
char password[]="shouwei",input[8];
printf("please input the password\n");
for(a=0;a<3;a++)
{
scanf("%7s",input);
if(strcmp(password,input)==0)
{
printf("welcome!");
}
else
{
if(a==2)
{
printf("三次输入机会已用完");
}
else
{
printf("wrong password!\nplease input the password again\n");
}
}
}
return 0;
}
2.2 程序运行结果:


3.编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。
3.1 代码:
#include <stdio.h>
#include <string.h>
#define N 100
int a(char str[]);
int main()
{
int x;
char str[N];
printf("请输入字符\n");
scanf("%s",str);
x=a(str);
if(x==0)
{
printf("这串字符不是回文数\n");
}
else
{
printf("这串字符是回文数\n");
}
return 0;
}
int a(char str[])
{
int b,i,j;
b=strlen(str);
for(i=0,j=b-1;i<j;i++,j--)
{
if(str[i]==str[j])
{
continue;
}
else
{
return 0;
}
}
return 1;
}
3.2 程序运行结果:


(二)实验总结(实验中遇到的问题及解决方法)
1. scanf与gets的运用要合理,建议写程序时运用gets,因为C语言不对越界做检查,运用scanf容易越界。
2.求和时记得给sum赋初始值。
3.回文数的判断不能只看几个数位,比如在有的程序语言中asdssaa也会被判断为回文数
4.另外要看清程序的要求。
(三)课程体会
1. 说实话,自己写过多少行代码真的是没有统计过,正确的加上编写的有问题的代码怎么也有4000-5000行了吧,因为我的程序有时会出现许许多多的问题,需要不断地改,所以应该不少。而且通过学习,我从一开始的一点儿都不懂,到现在的可以自己写出一些小程序,感觉学到了很多,也让我认识到了只有不断地练习才可以更加熟练,比如C语言代码,写的多了,也就知道了其中的乐趣。
2.在自己不会的时候不妨问问自己的舍友或者同专业的同学,当然高年级的学长以及我们的认可老师也可以为我们提供帮助,也可以借鉴下别的同学的程序也不是不可以,但仅限于借鉴,不可以抄,一个程序可以有很多种方法来写,也许看完别人的代码就可以激发自己的灵感。
3.对于博客提交作业这种形式,我的看法是这是一种好方法,不仅为我们提供了交流的平台,而且也可以督促我们及时完成作业。
浙公网安备 33010602011771号