第十一次作业

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("输入正确\n");
iii=1;
break;
}
if(iii==0&&i<2)
{
printf("输入错误,请重新输入\n");
}
}
if(i==3&&iii==0)
{
printf("输入错误\n");
}
}

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、老师和助教是真心提不出意见来......真的很负责!非常感谢!

posted on 2016-12-18 20:36  wxc123  阅读(155)  评论(1编辑  收藏  举报

导航