第二次个人编程作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/SE
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzzcxy/SE/homework/10289
这个作业的目标 汉字编程
作业正文 GitHub地址
其他参考文献

一、“让我看看你的代码!”

1、张露的issue(已解决)

2、李思锦的issue

3、蔡泽华的issue

4、游琳的issue(已解决)

5、陈新颖的issue

6、昵称为骑摩托的可乐的issue

7、王超凡的issue

8、昵称为MIRyu的issue

9、冉斌的issue

10、林航的issue

二、“容我再改一改!”

基本上有人给我提出问题或者建议,我都有进行修正和回复,这里就不贴出具体的图片了。

1、洪成龙大佬给予的double建议

这个问题是真的没有考虑到,原本的代码是第一句固定输入“整数”句式,忽略了这种情况。后面将开头的scanf()语句删去,后续的循环也进行了进一步的调整。

C语言有点久没有碰,因而忘记了字符串输入时的特殊情况,感谢大佬的纠正!

2、张体杰的建议

这里提出的错误是因为有个中间变量flag2,我在新的循环进行时未能重新初始化,导致后续的“看看”报错。感谢纠正!
下面是相关改进代码

else if(strcmp(a1,s5[0])==0) //看看
{
    flag2=0; 
    scanf("%s",a5);
    for(j=0;j<=i;j++)
    {
        if(strcmp(a5,b[j])==0)
        {
            change4(a[j]);
            printf("\n");
            flag2=1;
            break;
        }
    }
    if(flag2==0)
        judge1(a5);
} 

3、李思锦的建议


这个问题主要是因为汉字转数字部分代码中,11-19未转换成功,只转换了个位数,因而如果句式中的十六,实际存的时候是6,导致结果错误。这部分代码过长,就不贴出来了。最后感谢纠正!

4、王孟玉的建议

这里的问题也是关于汉字转数字的问题,在判断一十这种情况时,误将数字也包含在内。感谢纠正!
下面是相关改进代码

if(j==0)
{   
    if(d[i]==0);
    else if(d[i]==1)
        if(i==0)
            printf("%s",s4[d[i]]);
        else
            ;
    else 
        printf("%s",s4[d[i]]);
    j++;
}

5、昵称为MIRyu的建议

这里的问题也是我欠考虑的一点,习惯性一个输入存入一个数组,没考虑到两次输入同个变量的结果,感谢这位同学的纠正ww
下面是相关改进代码

if(strcmp(a1,s1[0])==0)//判断是否为整数
{
    scanf("%s",name);
    for(j=0;j<=i;j++)
        if(strcmp(name,b[j])==0)
        {
            flag1=1;
            break;
        }
    if(flag1==1)
    {
        scanf("%s %s",same,n);
        strcpy(b[j],name);
        a[j]=change2(n);
        flag1=0; 
    }
    else
    {
        scanf("%s %s",same,n);
        strcpy(b[i],name);
        a[i]=change2(n);
        i++;
    } 		
}

三、“让我再看一看!”

1、首先是我给张露的issue,得到的回复订正。

2、游琳给了回复后,我再次试过代码,发现相关问题已经解决。

四、我的提交记录

posted @ 2020-02-13 14:59  Qiiiii  阅读(601)  评论(0编辑  收藏  举报