问题标题: 酷町堂:1217

0
0

0
已采纳
方亦欧
方亦欧
新手光能
新手光能

@刘睿轩 ,你的程序在 if(a[m-1]==b[0]) 这一句后面没有加上else,这样会导致如果满足数组接龙的条件,你不仅输出了接龙后的数组,还把两个数组又原样输出了一遍。应该把下面这些语句放在else里面:

for(int i=0;i<m;i++)
     cout<<a[i]<<' ';
 cout<<"\n";
 for(int i=0;i<n;i++)
     cout<<b[i]<<' ';

望采纳哦!

0
方亦欧
方亦欧
新手光能
新手光能

这一题的思路大致如下:

输入两个数组,记为a和b;

判断a[m-1](a数组的最后一个元素)和b[0](b数组的第一个元素)是否相等,若是,先输出a数组,再输出b数组的第2-n个元素。

 if(a[m-1]==b[0])
 {
    for(i=0;i<m;i++)
       cout<<a[i]<<' ';
    for(i=1;i<n;i++)
       cout<<b[i]<<' ';
 }

如果不是,依次输出两个数组,记得换行。

for(i=0;i<m;i++)
    cout<<a[i]<<' ';
cout<<"\n";
for(i=0;i<n;i++)
    cout<<b[i]<<' ';

 

0
0
刘睿轩
刘睿轩
中级光能
中级光能

50:

#include<iostream>
using namespace std;
int main(){
 int a[1000],b[1000],m,n;
 cin >> m >> n;
 for(int i=0;i<m;i++)
 cin >> a[i];
 for(int i=0;i<n;i++)
 cin >> b[i];
  if(a[m-1]==b[0])
  {
     for(int i=0;i<m;i++)
        cout<<a[i]<<' ';
     for(int i=1;i<n;i++)
        cout<<b[i]<<' ';
  }
 for(int i=0;i<m;i++)
     cout<<a[i]<<' ';
 cout<<"\n";
 for(int i=0;i<n;i++)
     cout<<b[i]<<' ';
 return 0;
}

 

0
0
马佳滢
马佳滢
新手天翼
新手天翼

这就是你样例1的运行结果啊……(这就是原因)

马佳滢在2018-02-16 15:14:38追加了内容

要加"else":要不然if(a[m-1]==b[0])不成立还好,直接打印数组,不然的话,不仅接龙了,还打印了一遍原样数组,这就是一些测试点OK,一些wrong的原因了。

(就是少了画红框的部分)

0
我要回答