在数组中输入 n 个整数的列表,并以类似于钟摆来回移动的方式排列它们. 输入-1 3 2 5 4,输出5 3 1 2 4
Input a list of n integers in an array and arrange them in a way similar to the to-and-fro movement of a Pendulum. input-1 3 2 5 4,output5 3 1 2 4
#include <iostream>
using namespace std;
int main() {
int i,j,k=0,temp=0,x,n,m=0;
cin>>x;
while(x--)
{
cin>>n;
int a[n];
for(i=0;i<n;i++)
cin>>a[i];
for(i=0;i<n-1;i++)
{
for(j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
int b[n];
m=(n-1)/2;
b[m]=a[0];
i=m+1;
j=m-1;
k=1;
do
{
b[i]=a[k];
k++;
b[j]=a[k];
i++,j--;
k++;
}while(j>=0 && i<=n);
for(i=0;i<n;i++)
printf("%d ",b[i]);
cout<<endl;
}
return 0;
}
输入: 8
539 161 985 856 166 29 726 590
其正确输出为: 856 590 166 29 161 539 726 985
代码的输出为: 856 590 166 29 161 539 726 0
在上面的代码中,为什么输出显示 0 作为最后一个元素,尽管它适用于示例情况。
问题是这个测试:
}while(j>=0 && i<=n);
在参数数量为偶数的情况下,j>=0 在 i<=n 变为假之前一圈将为假。因此,将不会处理最后一个最正数。您需要找到一种方法来分别处理这两种最终情况(i 和 j(!
相关文章:
- 在数组中输入 n 个整数的列表,并以类似于钟摆来回移动的方式排列它们. 输入-1 3 2 5 4,输出5 3 1 2 4
- C ++异步键盘输入(标准方式)
- 如何使用打印到 PDF 打印机在 MFC 和 CView 中以编程方式打印而不提示输入文件名?
- 适用于 macOS 的 Xcode 应用程序。这就是我设置从USB麦克风输入获取音频的方式。一年前工作,现在没有了。为什么
- 用于了解输入和输出流缓冲区实际工作方式的程序
- 我可以使用什么方法或方式将用户输入的字符串转换为 C++ 中的整数
- 以编程方式输入新行
- 如何以有效的方式将输入参数传递给函数
- std::getline(std::cin, string) 可能因键盘输入失败的方式
- 在获得用户的2个输入后,需要以非常具体的方式创建乘法表
- 是否有一种方法可以在输入负数时平均不包括负数,这是您终止程序的方式
- 捕获无效输入的最常见/愚蠢方式
- 重载输入/输出运算符,为什么它以这种方式工作而不是以另一种方式工作
- 如何模拟原始输入/以正确的方式向应用程序发送WM_INPUT消息
- 以对角方式表示用户输入的字符串
- 如何仅验证int类型的输入..以一种非常简单但有效的方式?在c++中
- 使 c++ 程序以交互方式将输入输出传递给 windows 命令 prommpt
- C++:以编程方式初始化输入
- C++:如何使用CIN和File两种方式获取输入
- 跨平台的无阻塞控制台输入方式