第11次作业

一、实验内容

1、实验要求:输入一个字符串,统计大写字母、小写字母、空格、数字和其他字符的个数。(要求用字符数组)

代码:

# include<stdio.h>
# define M 100
int main()
{
    int i,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;
    char ch[M];
    printf("请输入这些字符
");
    gets(ch);
    i=0;
    while(ch[i]!='')
    {
        if(ch[i]>='A'&&ch[i]<='Z')
        {
            sum1++;
        }
        else if(ch[i]>='a'&&ch[i]<='z')
        {
            sum2++;
        }
        else if(ch[i]>='0'&&ch[i]<='9')
        {
            sum3++;
        }
        else if(ch[i]==' ')
        {
            sum4++;
        }
        else
        {
            sum5++;
        }
        i++;
    }
    printf("这串字符含有大写字母%d个
小写字母%d个
数字%d个
空格%d个
其他%d个
",sum1,sum2,sum3,sum4,sum5);
    return 0; 
}

程序运行结果:

2、实验要求:利用字符数组进行密码的验证,如果密码正确则登陆成功,否则登录失败。密码允许输入三次。

代码:

# include<stdio.h>
# define M 100
#include <string.h> 
int main()
{
    int i;
    char c1[M],c2[]="secret";
    printf("请输入你猜的密码
");
    for(i=0;i<M;i++)
    {
        gets(c1);
        if(strcmp(c1,c2)==0)
        {
            printf("恭喜你,密码正确!
");
            break;
        }
        else
        {
            printf("对不起,密码错误!
");
            i++;
        }
    }
   return 0;
}

程序运行结果:

3、实验要求:编写一个函数,判断一个字符串是否是回文。若是回文函数返回值为1;否则返回值为0。回文是顺读和倒读都一样。如“level”“abba”等是回文,但“abcd”不是回文。在主函数中调用回文函数对输入的字符串进行判断。

代码:

#include <stdio.h>
# define M 100
# include <string.h>
int huiwen(char c1[]);
int main() 
{    
    int b;
    char c1[M];
    printf("请输入一串字符
");
    scanf("%s",c1);
    b=huiwen(c1);
    if(b==0)
    {
        printf("这串字符不是回文序列
");
    }
    else
    {
        printf("这串字符是回文序列
");
    }
    return 0; 
} 
int huiwen(char c1[])
{
    int i,j,c;
    c=strlen(c1);
    for(i=0,j=c-1;i<j;i++,j--)
    {
        if(c1[i]==c1[j])
        {
            continue;
        }
        else
        {
            return 0;
        }
    }
    return 1;
}

程序运行结果:

二、实验总结

  1. 在字符数组中是以‘’作为结束的标志,因此可以将‘’作为判断数组循环是否结束的标志。
  2. 在判断是否是回文序列的函数中循环中有两个返回值要将不是回文序列的放在循环中,将是回文序列的返回值放在循环外。
  3. 在规定字符的长度时一定要将字符数组考虑进去,因为字符数组一定是以‘’作为结束。

三、课程体会

      对于这学期的C语言学习,我对于自己具体写了多少行代码虽然没有统计过,但是1000行也有了。在学习C语言最初的时候,对于C语言一直有一种好奇,看到那些编写代码的程序员都会产生一种羡慕。在学习C语言的过程中,虽然很辛苦,但是在C语言的学习中,我不仅仅是编写程序的能力有很大的提高,从一窍不通到能编写一些简单的小程序,而且也不断的锻炼自己看待问题问题的角度。不要单纯的从一个方面去考虑问题,要换多种角度,考虑多个方面做到面面俱到。

      在写C语言程序时,刚开始总是和高中写数学题时一样,想到哪写到哪,完全不管对错,在学习完C语言后,学会要先将一个程序的编写方法和步骤都想好后再编写,这样不仅提高了编写程序的速度,也同时提高了程序的正确程度,减少了重新再编写的麻烦。有一句俗话说的好“细节决定成败”,再编写程序的时候要注意到细节,往往我们都不会重视一些小的语法错误或者是编写过程中所多打的一个&或},这些都会在最后你编写一个大程序时使你的程序出现很多的错误,从而使你的信心受到打击,从而失去对这门语言的热爱。

      在这学期的C语言学习中,老师采用了一种在博客上提交作业的方式,还将往届学生中C语言学得好的学长和业内的一些顶尖人士请来帮助我们进行C语言的学习。我觉得这样会缓解老师的压力,也会让我们更好地学习这门课程,让自己对C语言有更多的了解。对于那些害怕老师的学生会更倾向于向学长提问,这样就不让他们继续不懂,及时解决了他们的问题也不会让他们感到尴尬,让他们的问题越来越多,从而失去对C语言的热爱。

原文地址:https://www.cnblogs.com/1997zjx/p/6172028.html