本文主要是介绍2021.7.14吐槽向,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2021.7.14
吐槽一下 L1-016 查验身份证 及L1-019 谁先倒
有心(sheng)无力(qi)的一天,下午一直在纠缠L1-016的问题,莫名其妙的代码在cb上运行会出现错误,他会把我设置好的a数组中的a[0]修改为0(在其他编译器上没这情况)就为了这个纠结了一中午(浪费时间)
事故现场:
调试后发现scanf("%s",s);之后a[0]的值会变为0,从而让后面的计算也出错(将a数组改为全局变量后不会出现这个情况)
把问题给了学长,在其他上面运行出来都没问题...(面无表情.jpg)
学长的建议
填补了之前的一个疑惑(为什么一些题解里的数组不需要清零)
学到了一个好习惯,补了一个疑惑,勉勉强强吧。
L1-019 谁先倒
程序闪退...但是感觉自己做的没啥问题,还是交了上去,结果过了。在测试出来也都是对的,就不太能理解为什么做对了,程序也会退出。
先贴一下代码吧
#include<stdio.h>
typedef struct node
{int jiu,hua,han;
} node;
int main()
{node a,b;scanf("%d %d",&a.jiu,&b.jiu);int n,jiua,jiub;jiua=a.jiu; jiub=b.jiu;scanf("%d",&n);while(n--){int sum;scanf("%d %d",&a.han,&a.hua);scanf("%d %d",&b.han,&b.hua);if(a.hua!=b.hua){sum=a.han+b.han;if(a.hua==sum){jiua--;}if(b.hua==sum){jiub--;}}if(jiua==-1){printf("A\n%d",b.jiu-jiub);break;}if(jiub==-1){printf("B\n%d",a.jiu-jiua);break;}}
}
下面是测试样例
1 1
6
8 10 9 12
5 10 5 10
3 8 5 12
12 18 1 13
4 16 12 15
15 1 1 16
这里是自己欠考虑也是代码敲少的原因...
在数据为 4 16 12 15这一组的时候,程序已经结束了,但是15 1 1 16组依然被复制粘贴后输入了
在输入15的时候,程序就已经被退出了...
自己还在网上找了其他的题解来看,但是找的算法和我的算法,不太一样,他们是把全部数据保存下来后,再进行判断,我的是再输入后就进行判断,这就导致了找的算法里复制粘贴后数据全面录入,没有多余的输入。(间接导致我怀疑自己编译器出了问题)
总结一下今天,算是吃一堑长一智的一天,之后这些问题也会遇见的,早点碰见也好,
不足的是,就是因为这些,今天过的题好少...
这篇关于2021.7.14吐槽向的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!