这个作业属于哪个课程 | 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("
");
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++;
}
}