杭电ACM 2103题,不知道到底错哪儿了,用了几组样例测试页通过了,就是不知道为什么,总是WA,代码如下: 100
#include<stdio.h>#include<math.h>intmain(){intT;scanf("%d",&T);getchar();while(T--){i...
#include <stdio.h>
#include<math.h>
int main()
{
int T;
scanf("%d",&T);
getchar();
while (T--)
{
int M=0,N=0,i=0,j=0;
int n[50]={0};
int flag=0;
long long tt=0;
scanf("%d%d",&M,&N);
for(i=1;i<=N;i++) scanf("%d",&n[i]);
if(N<=M)
{
for(j=1;j<=N;j++)
{
if(n[j]==1&&j!=N)
{
flag=1;
tt= 10000*(pow(2,N-j)-1);
printf("%llu RMB\n",tt);
break;
}
}
}
else
{
flag=1;
for(j=1;j<=N;j++)
{
if(n[j]==1&&j<M)
{
tt= 10000*(pow(2,N-j)-1);
printf("%llu RMB\n",tt);
break;
}
else
{
tt= 10000*(pow(2,N-M)-1);
printf("%llu RMB\n",tt);
break;
}
}
}
if(flag==0)
{
printf("0 RMB\n");
}
}
return 0;
}
请大神不要传自己的代码,我只想知道我错哪儿了 展开
#include<math.h>
int main()
{
int T;
scanf("%d",&T);
getchar();
while (T--)
{
int M=0,N=0,i=0,j=0;
int n[50]={0};
int flag=0;
long long tt=0;
scanf("%d%d",&M,&N);
for(i=1;i<=N;i++) scanf("%d",&n[i]);
if(N<=M)
{
for(j=1;j<=N;j++)
{
if(n[j]==1&&j!=N)
{
flag=1;
tt= 10000*(pow(2,N-j)-1);
printf("%llu RMB\n",tt);
break;
}
}
}
else
{
flag=1;
for(j=1;j<=N;j++)
{
if(n[j]==1&&j<M)
{
tt= 10000*(pow(2,N-j)-1);
printf("%llu RMB\n",tt);
break;
}
else
{
tt= 10000*(pow(2,N-M)-1);
printf("%llu RMB\n",tt);
break;
}
}
}
if(flag==0)
{
printf("0 RMB\n");
}
}
return 0;
}
请大神不要传自己的代码,我只想知道我错哪儿了 展开
1个回答
2016-06-27
展开全部
简单的看了一下,先说两个问题,第一,if(color[i]==color[j])flag++;num[i]=flag;这个位置,i=N,color[i]即color[N],这已经越界了,应该是N-1,也就是i-1.第二,两个字符串比较应该用strcmp比较函数,而不是直接用==符号,先改改,还有问题再继续追问我。还没调试,下次追问顺便把问题也一起发过来,追问或者私信都可以!
追问
你是在回答我的问题吗?我既没有color数组,也没有num数组,更不存在字符串比较,能别胡说吗?!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询