以下是引用至尊灬帝豪在2016-12-8 19:10:25的发言:
#include <stdio.h>
#define M 10
#define N 10
int main()
{
int a[20],s,i=0,j=0;
for(s=1;s=0&&s<=20;s++)
{
scanf("%d",&a[s]);
if(a[s]>0)
i++;
if(a[s]<0)
j++;
}
printf("i=%d\n",i);
printf("j=%d\n",j);
return 0;
}
我这样可以吗?
#include <stdio.h>
#define M 10
#define N 10
int main()
{
int a[20],s,i=0,j=0;
for(s=1;s=0&&s<=20;s++)
{
scanf("%d",&a[s]);
if(a[s]>0)
i++;
if(a[s]<0)
j++;
}
printf("i=%d\n",i);
printf("j=%d\n",j);
return 0;
}
我这样可以吗?
我的答案不符合题意,少了n<20条件,所以答案不对。
int a[20],s,i=0,j=0;
for(s=1;s=0&&s<=20;s++)
scanf("%d",&a[s]);
这里s==20时越界
换另一种算:
#include <stdio.h>
main()
{
int i=0, j=0, k, n=0;
int m=sizeof(k)*8-1;
while (++n<20)
{
scanf("%d", &k);
if (k==0)
break;
j += (k>>m)&1;
}
i = n-j-1;
printf(">0 %d\n<0 %d\n", i,j);
}