- 已关闭。**此问题为not reproducible or was caused by typos。当前不接受答案。
这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
昨天关门了。
Improve this question
我尝试使用和不使用数组来解决这个问题。
问题:
如果一周晴天的天数严格大于雨天的天数,那么谢夫兰的天气报告是好的。
样品输入:
4
1 0 1 0 1 1 1
0 1 0 0 0 0 1
1 1 1 1 1 1 1
0 0 0 1 0 0 0
其产出:
YES
NO
YES
NO
当我使用数组来存储所有的值时,它是有效的。但是当我使用单个变量时,它会抛出一个sigsegv错误。
使用数组的代码:
#include <stdio.h>
#define max 7
int main(void) {
int T,Arr[max];
scanf("%d",&T);
while(T--)
{
int sun=0, rn=0;
for(int i=0;i<max;++i)
{
scanf("%d",&Arr[i]);
Arr[i]==0 ? ++rn : ++sun;
}
sun>rn?printf("Yes\n") : printf("No\n");
}
return 0;
}
使用导致sigsegv的变量的代码:
#include <stdio.h>
#define max 7
int main(void) {
int T,a;
scanf("%d",&T);
while(T--)
{
int sun=0, rn=0;
for(int i=0;i<max;++i)
{
scanf("%d",a);
a==0 ? ++rn : ++sun;
}
sun>rn?printf("Yes\n") : printf("No\n");
}
return 0;
}
我的理解是,因为'a'是一个整型变量,所以每次执行scanf时,它都应该存储新的值,然后执行下一个操作,这样我就不必使用数组来浪费更多的内存。但它抛出了sigsegv。不知道为什么。
1条答案
按热度按时间jv4diomz1#
在第二个代码段中,scanf用法错误。
应该是