读书人

九度OJ 1001请问案列6为何不过?多谢

发布时间: 2013-04-02 12:35:26 作者: rapoo

九度OJ 1001,请教案列6为何不过?谢谢

#include <iostream>
using namespace std;

int main()
{
int m,n;
int a[12][12]={0},b[12][12]={0};

while(cin>>m>>n){
if(0==m||0==n)
return 0;
else
if(m<=10&&n<=10)
{
int count=m+n;
//输入a矩阵
for(int i=0;i<m;i++){
for(int j=0;j<n;j++)
cin>>a[i][j];
}

//输入b矩阵,并将矩阵a、b相加
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cin>>b[i][j];
b[i][j]+=a[i][j];
}
}

/*for(int i=0;i<m;i++){
for(int j=0;j<n;j++)
cout<<b[i][j]<<" ";
cout<<endl;
}*/
//cout<<"初始值:"<<count<<endl;
for(int i=0;i<m; ){
for(int j=0;j<n;j++){

if(0!=b[i][j]){
count--;
i++;}
else
if(j==n-1)
i++;

}
}

for(int j=0;j<n; ){
for(int i=0;i<m;i++){

if(0!=b[i][j]){
count--;
j++;}
else
if(i==m-1)
j++;

}
}
/*for(int i=0;i<m;i++)
cout<<i<<endl;*/
//cout<<"最终值:";
cout<<count<<endl;
}
}
return 0;
}

难道有什么特殊的案列没考虑到?
[解决办法]
题目呢?贴上来先。。
[解决办法]
#include <iostream>
using namespace std;

int main()
{
int m,n;
int a[12][12]={0},b[12][12]={0};

while(cin>>m>>n){
if(0==m
[解决办法]
0==n)
return 0;
else
if(m<=10&&n<=10)
{
int count=m+n;
//输入a矩阵
for(int i=0;i<m;i++){
for(int j=0;j<n;j++)
cin>>a[i][j];
}

//输入b矩阵,并将矩阵a、b相加
for(int i=0;i<m;i++){


for(int j=0;j<n;j++){
cin>>b[i][j];
b[i][j]+=a[i][j];
}
}

/*for(int i=0;i<m;i++){
for(int j=0;j<n;j++)
cout<<b[i][j]<<" ";
cout<<endl;
}*/
//cout<<"初始值:"<<count<<endl;
for(int i=0;i<m; i++){
for(int j=0;j<n;j++){
if(0!=b[i][j]){
count--;
break;}
}
}

for(int j=0;j<n; j++){
for(int i=0;i<m;i++){
if(0!=b[i][j]){
count--;
break;}
}
}
/*for(int i=0;i<m;i++)
cout<<i<<endl;*/
//cout<<"最终值:";
cout<<count<<endl;
}
}
return 0;
}


用break中循
[解决办法]
1 1
0
0
输出的时候是 2.。。~
[解决办法]
引用:
1 1
0
0
输出的时候是 2.。。~

。。。我弄错了
[解决办法]
你统计全0行和列的部分有问题


你可以试下这个数据
2 4
0 0 1 1
0 1 0 0
0 0 0 0
0 0 0 0
结果是 1
但你输出了3
[解决办法]
我想主要原因是if(0!=b[i][j]) {count--;i++;}有中循
假如j<n且0!=b[i][j]就count--;i++;
我的代果是1

引用:
你统计全0行和列的部分有问题
你可以试下这个数据
2 4
0 0 1 1
0 1 0 0
0 0 0 0
0 0 0 0
结果是 1
但你输出了3

读书人网 >C++

热点推荐