這個作業屬於哪個課程 | 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++;
}
}