jugcarry 2015-11-10 14:23
浏览 721

在本地能通过样例,提交总是runtime error

acm新人
紫书的例题4-5 Spreadsheet Tracking UVa512
提交结果总是runtime error 但我检查不出错误。
代码是自己写的,我看了答案的代码,感觉思路跟书上第一种答案是一样的
万分感谢!
附上我的代码:
#include
#include
#include
int spreadsheet[100][100];
void deleterow(int (*s)[100],int r)
{
for(int i=r;i<=50;i++)
for(int k=1;k<=50;k++)
s[i][k]=s[i+1][k];
}
void deletecolumn(int (*s)[100],int c1)
{
for(int i=1;i<=50;i++)
for(int j=c1;j<=50;j++)
s[i][j]=s[i][j+1];
}
void insertrow(int (*a)[100],int r)
{
for(int i=50;i>=r;i--)
for(int j=1;j<=50;j++)
a[i+1][j]=a[i][j];
for(int j=1;j<=50;j++)
a[r][j]=0;

}
void insertcolumn(int (*a)[100],int c)
{
for(int j=50;j>=c;j--)
for(int i=1;i<=50;i++)
a[i][j+1]=a[i][j];
for(int i=1;i<=50;i++)
a[i][c]=0;
}
void exchange(int (*a)[100],int r1,int c1,int r2,int c2)
{
int temp=a[r1][c1];
a[r1][c1]=a[r2][c2];
a[r2][c2]=temp;
}
int main()
{
int r,c,kase=0;
while(scanf("%d%d",&r,&c)==2&&r&&c)
{
memset(spreadsheet,0,sizeof(spreadsheet));
for(int i=1;i<=50;i++)
for(int j=1;j<=50;j++)
spreadsheet[i][j]=(i-1)*1000+j;
int n;
scanf("%d",&n);
while(n--)
{
char com[2];int A;int x[11];
memset(x,100,sizeof(x));
scanf("%s",com);
if(com[0]!='E')
{
scanf("%d",&A);
for(int i=1;i<=A;i++)
{
scanf("%d",&x[i]);
}
std::sort(x+1,x+A);
}
else
{
scanf("%d%d%d%d",&x[1],&x[2],&x[3],&x[4]);
}
switch(com[0])
{
case 'D':
{
if(com[1]=='R')
for(int i=1;i<=A;i++)
deleterow(spreadsheet,x[i]-i+1);
else
for(int i=1;i<=A;i++)
deletecolumn(spreadsheet,x[i]-i+1);
}
break;
case 'I':
{
if(com[1]=='C')
for(int i=1;i<=A;i++)
insertcolumn(spreadsheet,x[i]+i-1);
else
for(int i=1;i<=A;i++)
insertrow(spreadsheet,x[i]+i-1);
}
break;
case 'E':
{
exchange(spreadsheet,x[1],x[2],x[3],x[4]);
}
break;

}
}
int qnum;
scanf("%d",&qnum);
printf("Spreadsheet #%d\n",++kase);
while(qnum--)
{
int r,c,flag=1;
scanf("%d%d",&r,&c);
for(int i=1;i<=50;i++)
for(int j=1;j<=50;j++)
if(spreadsheet[i][j]==((r-1)*1000+c))
{
printf("Cell data in (%d,%d) moved to (%d,%d)\n",r,c,i,j);
flag=0;
}
if(flag)
printf("Cell data in (%d,%d) GONE\n",r,c);
}
}
return 0;
}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 matlab求解平差
    • ¥15 电脑桌面设定一个区域禁止鼠标操作
    • ¥15 求NPF226060磁芯的详细资料
    • ¥15 使用R语言marginaleffects包进行边际效应图绘制
    • ¥20 usb设备兼容性问题
    • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
    • ¥15 安装svn网络有问题怎么办