阵列的旋转 这是C++代码,我觉得它是正确的,但它不起作用。
我会解释一下以便理解阵列的旋转 这是C++代码,我觉得它是正确的,但它不起作用。,c++,C++,我会解释一下以便理解 t-尝试次数。 n-数组的大小。 k-旋转次数 输入:12345 对于k=2,输出:45 1 2 3 请提出同样的建议 #include<iostream> using namespace std; int main() { int t,n,k; cin >> t; int s = 0; int a[1000]; int b[1000]; for (int i = 0; i < t; i++)
t
-尝试次数。n
-数组的大小。k
-旋转次数
输入:12345
对于k=2
,输出:45 1 2 3
请提出同样的建议
#include<iostream>
using namespace std;
int main() {
int t,n,k;
cin >> t;
int s = 0;
int a[1000];
int b[1000];
for (int i = 0; i < t; i++) {
cin >> n; //TAKING IN THE NUMBER OF ELEMENTS.
cin >> k; // TAKING IN AMOUNT OF ROTATION.
for (int j = 0; j < n; j++) {
cin >> a[j]; //READING ARRAY.
cout << " ";
}
for (int y = 0; y < n; y++) {
b[y + k] = a[y]; // REARRANGING ARRAY.
if (y + k >= n) {
b[s] = a[y];
s++;
}
cout << b[y] << " "; // SHOWING ARRAY.
}
}
return 0;
}
#包括
使用名称空间std;
int main(){
int t,n,k;
cin>>t;
int s=0;
INTA[1000];
int b[1000];
for(int i=0;i>n;//接受元素的数量。
cin>>k;//接受旋转量。
对于(int j=0;j>a[j];//读取数组。
cout=n){
b[s]=a[y];
s++;
}
cout您的代码存在问题
cout<<b[y]<<" "; // SHOWING ARRAY.
coutn;
cin>>k;
对于(int j=0;j>a[j];
//可能是什么问题?另外,请清理问题格式,你发布的方式确实很难阅读。输入1 2 3 4 5
的k=2与程序使用输入的方式不匹配。首先确保启用额外的警告,然后将警告作为错误处理。然后请。和一些缩进以使其成为错误sier to read可能也不错。最后,除非这是一个您必须自己编写旋转的练习,否则请了解。使用调试器逐步完成代码,这将有助于使错误变得非常明显。我简化了代码,最后一个for循环的错误(复数)脱颖而出。非常感谢您的帮助。我非常感谢您对我的问题的洞察力和指导,您的解决方案解决了我的问题,同时认识到我的错误。谢谢。
using namespace std;
int main()
{
int t;
cin>>t;
int n;
int k;
int a[1000];
int b[1000];
for(int i=0;i<t;i++)
{
int s=0; //Changed
cin>>n;
cin>>k;
for(int j=0;j<n;j++)
{
cin>>a[j];
// cout<<" "; //Not needed
}
for(int y=0;y<n;y++)
{
b[y+k]=a[y];
if(y+k>=n)
{
b[s]=a[y];
s++;
}
//cout<<b[y]<<" "; // changed this
}
for(int y=0;y<n;y++) //added this
cout<<b[y]<<" ";
}
return 0;
}