C++ 求给定整数的邻域之和

C++ 求给定整数的邻域之和,c++,C++,给定一个由五个整数组成的序列。将这些数字(第一个和最后一个数字除外)替换为其相邻数字的总和。打印结果数字 好的,对代码进行编码和测试,它给了我10%的有效性。我不知道我在哪里犯了错误?代码看起来很好,但我不能得到100%。这是家庭作业,只是想让你知道,伙计们,帮我找出我犯了错误的地方 #include <bits/stdc++.h> using namespace std; int main() { int a,b,c,d,f; cin>>a>>b&g

给定一个由五个整数组成的序列。将这些数字(第一个和最后一个数字除外)替换为其相邻数字的总和。打印结果数字

好的,对代码进行编码和测试,它给了我10%的有效性。我不知道我在哪里犯了错误?代码看起来很好,但我不能得到100%。这是家庭作业,只是想让你知道,伙计们,帮我找出我犯了错误的地方

#include <bits/stdc++.h>
using namespace std;
int main()
{
  int a,b,c,d,f;
  cin>>a>>b>>c>>d>>f;
  int b_1=(b-1)+(b+1);
  int c_1=(c-1)+(c+1);
  int d_1=(d-1)+(d+1);
  cout<<a<<b_1<<c_1<<d_1<<f;
}

//input 1 2 3 4 5
//ouput 1 4 6 8 5

我想你误解了这个问题。邻域之和是序列中给定数字前后的数字之和。这似乎是显而易见的事实,你不应该计算的第一个和最后一个数字-每个只有一个邻居

int a, b, c, d, e;
if (cin >> a >> b >> c >> d >> e) {
  cout << a << (a + c) << (b + d) << (c + e) << e;
}

我想你误解了这个问题。邻域之和是序列中给定数字前后的数字之和。这似乎是显而易见的事实,你不应该计算的第一个和最后一个数字-每个只有一个邻居

int a, b, c, d, e;
if (cin >> a >> b >> c >> d >> e) {
  cout << a << (a + c) << (b + d) << (c + e) << e;
}

首先注意你自己的信息

给定一个由五个整数组成的序列。替换这些数字,除非 第一个和最后一个,与他们的邻居的总和。打印 结果数字

因此,您不仅需要输出新值。您需要替换变量的值

您只需使用标头中声明的标准函数std::exchange即可完成以下任务

比如说

#include <iostream>
#include <utility>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = std::exchange( b, a + c );
    tmp = std::exchange( c, tmp + d );
    std::exchange( d, tmp + f );

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
#include <iostream>
#include <utility>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = b;

    b = a + c;

    std::swap( tmp, c );

    c += d;

    std::swap( tmp, d );
    d += f;


    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
#include <iostream>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int prev = a;

    int tmp = prev;
    prev = b;
    b = tmp;

    b += c;

    tmp = prev;
    prev = c;
    c = tmp;

    c += d;

    tmp = prev;
    prev = d;
    d = tmp;

    d += f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
另一种方法是使用标准函数std::swap。比如说

#include <iostream>
#include <utility>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = std::exchange( b, a + c );
    tmp = std::exchange( c, tmp + d );
    std::exchange( d, tmp + f );

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
#include <iostream>
#include <utility>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = b;

    b = a + c;

    std::swap( tmp, c );

    c += d;

    std::swap( tmp, d );
    d += f;


    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
#include <iostream>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int prev = a;

    int tmp = prev;
    prev = b;
    b = tmp;

    b += c;

    tmp = prev;
    prev = c;
    c = tmp;

    c += d;

    tmp = prev;
    prev = d;
    d = tmp;

    d += f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
您可以自己模拟函数std::swap。比如说

#include <iostream>
#include <utility>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = std::exchange( b, a + c );
    tmp = std::exchange( c, tmp + d );
    std::exchange( d, tmp + f );

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
#include <iostream>
#include <utility>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = b;

    b = a + c;

    std::swap( tmp, c );

    c += d;

    std::swap( tmp, d );
    d += f;


    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
#include <iostream>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int prev = a;

    int tmp = prev;
    prev = b;
    b = tmp;

    b += c;

    tmp = prev;
    prev = c;
    c = tmp;

    c += d;

    tmp = prev;
    prev = d;
    d = tmp;

    d += f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
最后是最简单的方法

#include <iostream>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = b;

    b = a + c;

    c = tmp + d;

    d = f + b - a;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}

使用最后一种方法:这对初学者来说很简单。

首先要注意你自己的信息

给定一个由五个整数组成的序列。替换这些数字,除非 第一个和最后一个,与他们的邻居的总和。打印 结果数字

因此,您不仅需要输出新值。您需要替换变量的值

您只需使用标头中声明的标准函数std::exchange即可完成以下任务

比如说

#include <iostream>
#include <utility>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = std::exchange( b, a + c );
    tmp = std::exchange( c, tmp + d );
    std::exchange( d, tmp + f );

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
#include <iostream>
#include <utility>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = b;

    b = a + c;

    std::swap( tmp, c );

    c += d;

    std::swap( tmp, d );
    d += f;


    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
#include <iostream>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int prev = a;

    int tmp = prev;
    prev = b;
    b = tmp;

    b += c;

    tmp = prev;
    prev = c;
    c = tmp;

    c += d;

    tmp = prev;
    prev = d;
    d = tmp;

    d += f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
另一种方法是使用标准函数std::swap。比如说

#include <iostream>
#include <utility>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = std::exchange( b, a + c );
    tmp = std::exchange( c, tmp + d );
    std::exchange( d, tmp + f );

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
#include <iostream>
#include <utility>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = b;

    b = a + c;

    std::swap( tmp, c );

    c += d;

    std::swap( tmp, d );
    d += f;


    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
#include <iostream>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int prev = a;

    int tmp = prev;
    prev = b;
    b = tmp;

    b += c;

    tmp = prev;
    prev = c;
    c = tmp;

    c += d;

    tmp = prev;
    prev = d;
    d = tmp;

    d += f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
您可以自己模拟函数std::swap。比如说

#include <iostream>
#include <utility>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = std::exchange( b, a + c );
    tmp = std::exchange( c, tmp + d );
    std::exchange( d, tmp + f );

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
#include <iostream>
#include <utility>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = b;

    b = a + c;

    std::swap( tmp, c );

    c += d;

    std::swap( tmp, d );
    d += f;


    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
#include <iostream>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int prev = a;

    int tmp = prev;
    prev = b;
    b = tmp;

    b += c;

    tmp = prev;
    prev = c;
    c = tmp;

    c += d;

    tmp = prev;
    prev = d;
    d = tmp;

    d += f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}
最后是最简单的方法

#include <iostream>

int main() 
{
    int a, b, c, d, f;

    std::cin >> a >> b >> c >> d >> f;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    int tmp = b;

    b = a + c;

    c = tmp + d;

    d = f + b - a;

    std::cout << "a = " << a
              << ", b = " << b
              << ", c = " << c
              << ", d = " << d
              << ", f = " << f
              << '\n';

    return 0;
}

使用最后一种方法:这对初学者来说很简单。

只有当数字按自然顺序排列时,代码才会起作用。例如,尝试输入362119!让我问你:b的邻居是什么?b-1或b+1等于吗?输入序列中的相邻数字。可能你误解了这个问题。我的理解是:int b_1=a+c@ElgunQuliyev 1如前所述,x-1+x+1相当于2*x。如果是这样的话,为什么任务不说用两倍的数字替换这个数字呢?2为什么你认为除了第一句和最后一句之外,你的代码只有在数字按自然顺序排列时才有效。例如,尝试输入362119!让我问你:b的邻居是什么?b-1或b+1等于吗?输入序列中的相邻数字。可能你误解了这个问题。我的理解是:int b_1=a+c@ElgunQuliyev 1如前所述,x-1+x+1相当于2*x。如果是这样的话,为什么任务不说用两倍的数字替换这个数字呢?2.你为什么认为除了第一条和最后一条外,其他条款都在练习中呢?我太笨了,现在我明白了,我对编码很陌生lott@ElgunQuliyev这是完全可以理解的错误。你只是误解了老师的指示。我把你的评论投在了感谢部分,而不是虚假部分。@formerlyknownas_463035818非常感谢你的激励:我非常愚蠢,现在我明白了,我在编码方面是个新手lott@ElgunQuliyev这是完全可以理解的错误。你只是误解了老师的指示。我把你的评论投到了感谢的部分,而不是虚假的部分。@formerlyknownas_463035818非常感谢你的激励: