我正在编写一个程序,它接受用户输入以确定用户输入的所有对的数字对和交换值。
例如:
用户想要输入3对,然后输入3,然后输入对:
3 1 2 3 4 5 6
输出:
2 1 4 3 6 5
我的程序正在提供正确的输出,但不是一次性取出所有对,而是逐个接受它们并给出输出。我有一个模糊的想法,这可以通过使用数组解决,但不知道如何解决。请帮忙。
这是我的代码:
#include <stdio.h>
int main()
{
int x, y, p, i;
//int a [100], b[100];
printf ("How many pairs?\n");
scanf ("%d", &p);
for(i=1; i<=p; i++)
{
printf ("Enter two values:\n");
scanf("%d %d",&x,&y);
x = x + y;
y = x - y;
x = x - y;
//a[i]=x;
//b[i]=y;
printf("\n");
printf("After Swapping: x = %d, y = %d\n", x, y);
}
return 0;
}
目前输出如下:
多少对? 2
输入两个值: 2 3
交换x = 3和y = 2
之后输入两个值: 4 5
交换x = 5和y = 4之后。我希望它将所有4个值放在一起并显示输出。
答案 0 :(得分:0)
由于您添加了C ++标记,我建议使用简单的STL解决方案:
#include <iostream>
#include <vector>
int main(){
std::vector<std::pair<int,int>> Vec;
std::pair<int,int> Pr;
int n;
std::cin>>n; //no. of pairs
while(n--){
std::cin>>Pr.second>>Pr.first; //pair of elements stored in swapped locations
Vec.push_back(Pr);
}
for(auto element : Vec){
std::cout<<element.first<<" "<<element.second<<" ";
}
return 0;
}