第二次编程作业

这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系)
这个作业要求在哪里 第二次个人编程作业
这个作业的目标 和同学之间互相提出issue和改进代码
作业正文 GitHub地址
其他参考文献

我的commit提交信息

"让我看看你的代码!"

1、蔡泽华的GitHub仓库地址

  • 建议:输入“如果”里面判断的代码的输入,合并为一个,减少代码量,也减少代码冗余

2、蔡雨婷的GitHub仓库地址

  • 建议:判断字符长度为2的数字时,需要限定输入数值大小,“一千”“一万”等字符长度为2的数字输入后会报错,修改判断条件

3、曹淦淇的GitHub仓库地址

  • 代码可以执行样例一,无法执行样例二

4、林铭智的GitHub仓库地址

  • 建议:“如果”的判断被注销,不能执行,“如果”里面直接直接break没有确切功能,添加其功能

5、朱紫阳的GitHub仓库地址

  • 建议:输出结果只限定于代码中所给定的内容,并且只能与数字10比较,应添加能够动态输入的方式与结果比较

6、魏忠杰的GitHub仓库地址

  • 建议:else里y=n1(c),y是整型变量,n1(c)返回的是字符型变量,所以会报错,将n1改成n就行了

7、陶佳杰的GitHub仓库地址

  • 输出的结果只限定于代码中给定的

8、连捷的GitHub仓库地址

  • 建议:只能运用于样例一,不能实现其他功能,需要改进

9、何子聪的GitHub仓库地址

  • 建议:可以去添加上处理十以上数字的方法,例如添加上strlen(var),根据输入的字符长度来判断输入的数字是否为十以上的数字

10、魏鹏辉的GitHub仓库地址

  • 建议:在if(strcmp(bb,"看看")== 0)内添加上scanf("%s %s %s %s %s %s %s %s %s %s",a,b,c,d,e,f,g,h,i,j);来实现如果的输入,之后用你的输出结果与这里的d比较,即if(result>d){printf("%s %s",result,g);}这样就能实现结果与你想比较的数字进行比较,输出的文字也能动态实现

"容我再改一改!"

2.1 已解决

  • 解决方案回复张体杰:对于此问题,是因为我设置的输入顺序问题,如果按照样例一的输入格式来输入则可以正常运行(后来同学们重复提输入顺序的问题,最后按照同学们意见改了)

2.2 已解决

  • 解决方案:
    对于此问题可能是部分人对样例输入格式理解不同导致的(附上样例一),样例一输入的顺序是所有输入完再一次性输出

    如果非要按照建议改进,即:
else if(strcmp(name1,"看看")==0)
		{
			scanf("%s",name);
			if(sum>=0&&sum<=10)
			{
				printf("%s
",chinese[sum]);
			}
			else if(sum>10&&sum<=99) 
			{
				if(sum%10==0)
				{
					printf("%s十
",chinese[sum/10]);
				}
				else if(sum<=19)
				{
					printf("十%s
",chinese[sum%10]);
				}
				else 
				{
					printf("%s十%s
",chinese[sum/10],chinese[sum%10]);
				}
			}

2.3 已解决

  • 对建议的回复:对于这位同学提出来的问题存在上面同学已经提出来的(输入顺序问题,上位同学提出来的建议已经修改),对于输出结果出错,我经过反复测试没有问题,我想可能是这位同学在测试的出现了错误(附上测试图)
  • 解决方案回复江李悦:实现范例二中判断的动态化(可以实现对给定数字与结果数字比较)并且添加了对年龄判断的不同要求,如:年龄大于目标值,还是小于目标值。修改为:

	else if(strcmp(b,"大于")==0)
			{
				scanf("%s %s",a,age);	
				int z=jud(numb2);
				int k=jud(e);
				if(sum>z)//第二题sum表示年龄,sum2零花钱
				{
					int	x=sum2+k;
					printf("%s",chinese[x]);
				}
				else
				{
					int t=jud(numb3);
					printf("%s",chinese[sum2]);
				}
			}
			else if(strcmp(b,"小于")==0)
			{
				scanf("%s %s",a,age);	
				int z=jud(numb2);
				int k=jud(e);
				if(sum>z)//第二题sum表示年龄,sum2零花钱
				{
					int	x=sum2-k;
					printf("%s",chinese[x]);
				}
				else
				{
					int t=jud(numb3);
					printf("%s",chinese[sum2]);
				}
			}


2.4 已解决

scanf("%s %s %s %s %s %s %s %s %s",age,b,numb2,d,money,word,e,f,cold);
			int lasttmp=jud(numb2);
			int len=strlen(word);
			int len1=strlen(cold);
			if(strcmp(age,name)==0&&strcmp(money,"看看")==0)
			{
				if(sum>=lasttmp)
				{
					for (int i=1;i<len-1; i+=2) {printf("%c%c",word[i],word[i+1]);}//去除双引号
				}
				else if(sum<lasttmp)
				{
					for(int j=1;j<len1-1;j+=2) {printf("%c%c",cold[j],cold[j+1]);}//去除双引号*/
				}	
			}

2.5

回复刘雨昂改进了部分代码,不会造成输入不符合格式的数值导致bug

2.6

回复蔡泽华个人编程习惯,不进行更改

"让我再看一看!"

1、曹淦淇

他的改进:

  • 增加了样例二的判断
  • 能基本实现样例二的功能

2、蔡雨婷

她的改进:

  • 增加了负数的判定
  • 排除了根据字符长度来判断数字的大小带来的bug
原文地址:https://www.cnblogs.com/10672661cdq/p/12292486.html