第十一次作业

(一)实验内容 

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

#include<stdio.h>
#define n 100
int main()
{
    char a[n];
    int i,a1=0,b=0,c=0,d=0,e=0;
    printf("请输入字符串
");
    gets(a);
    for(i=0;a[i]!='';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 if(a[i]==' ')
        {
            d++;
        }
        else
        {
            e++;
        }
    }
    printf("大写字母有%d个,小写字母有%d个,数字有%d个,空格有%d个,其他有%d个
",a1,b,c,d,e);
    return 0;
}

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

#include<stdio.h>
#include<string.h>
#define N 100
int main()
{
    char a[N],b[N];
    int i,c,d=3;
    printf("设置一个密码
");
    gets(a);
    printf("请输入你的密码,你有三次机会
");
    for(i=0;i<3;i++)
    {
        gets(b);
        if(strcmp(a,b)==0)
        {
            printf("密码正确
");
            break;
        }
        else if(d!=1)
        {
            printf("输入错误,剩余%d次
",d-1);
            d--;
        }
        else
        {
            printf("密码错误,没机会了
");
            break;
        }
    }
    return 0;
}

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

#include<stdio.h>
#define N 100
int hui(char a[]);
int main()
{
    int i,j;
    char a[N];
    printf("请输入一个字符串
");
    gets(a);
    if(hui(a))
    {
        printf("是回文数
");
    }
    else
    {
        printf("不是回文数
");
    }
}
int hui(char a[])
{
    int j=-1,i;
    for(i=0;a[i]!='';i++)
    {
        j++;
    }
    for(i=0;i<j;i++,j--)
    {
        if(a[i]!=a[j])
        {
            return 0;
        }
    }
    return 1;
}

(二)实验总结(实验中遇到的问题及解决方法)

1.gets(字符数组)

把()打成了[]

2.把 if(strcmp(a,b)==0)打成了 if(strcmp(a,b)=0)  这是字符串的比较

还要注意的是字符串不能用关系运算符直接比较大小

(三)课程体会

1. 经过一个学期的学习,你统计过一共写了多少行代码吗?与开学初相比,你对C语言或者程序设计有了哪些认识和理解?

这学期大约写了1500行代码,刚开学时觉得写代码是一件伟大而艰巨的事业,好难,啥意思,我为什么要写代码,哈哈,过了一小段时间就觉得写代码很有趣,每次写出来一个代码都会特别特别开心。现在呢,可以用一个平和的心情面对写代码这件事,有信心把这门课程学好。

2. 在C语言的学习过程中,你有什么经验和教训分享给大家?

我认为写代码最重要的是把思路理清,写之前把循环嵌套各种思路可以在纸上大致写一遍。如果刚开始真的一点思路都没有,也可以看一下别人的程序,学习别的同学好的思路,但这并不代表把人家的程序直接复制,一定要自己不看别人的程序再自己写一遍。等自己的思维模式逐渐形成,那么c语言一定就会有很大的进步了。因为自己感觉接触c语言比较晚,了解的东西也特别少,学习上也会有一些吃力,同我一样的同学也不要着急,只要我们有一个正确的态度,相信自己,并付诸于行动,我相信我们大家都会学号这门课程,^~^我爱c语言。

3. 对于采用技术博客提交作业这种形式,你有什么看法,对你有帮助的地方在哪里?你觉得还可以做哪些改进?,如果下一届的学弟学妹们入学了,你会给他们推荐这种教学形式吗?

博客提交作业这种形式我认为特别好,特别有新意,紧跟时代潮流。首先它可以起到一个督促作用。如果不写博客,听完课也就听完了,一部分同学也许做不到自觉完成作业。其次他可以帮助同学们复习。写完一个程序不是就代表你真的就写完了,通过不断的学习,你的知识储备量会不断增加,你的代码可以不断的去完善,把以前写的代码真正的吃透,再进行优化。改进嘛可以找一些有趣的代码,让大家写写,调动学生的积极性,还有就是可以把作业提交时间改成中午12点,可以避免晚上熬夜写代码,提交时才发现是11点01分,哈哈哈哈哈。下一届学弟学妹入学,我会推荐这种教学形式,便于他们进一步的学习和巩固。

4. 对于这门课程,对于老师和助教的工作,你有什么好的建议或者意见,都可以提出来,我们一起改进。

以前以为上了大学老师就不管我们了,然而并不是这样的。每一次作业老师都会认真的看,给我们评论每一次作业的优点缺点和错误,有时候写代码找不出错误,都大半夜了,实在着急的不行,问老师,老师特别耐心的给我找错误,>.<特别感动。助教哥哥们也特别好,每次上机操作都陪着我们,给我们一些建议,帮我们改程序。

原文地址:https://www.cnblogs.com/-lyf/p/6173190.html