第二次作业

学习指针的时候,预习部分做的不够充分,课上存在的知识漏洞也没有及时弄懂,导致指针这一章节的学习走了许多弯路。

如cpp9编程第三题

7-3 数组元素循环移动 (15 分)

在主函数中输入10个整数到数组中,调用函数完成将数组循环移动k位(要求函数参数为⑴数组名 ⑵数组元素的个数 ⑶循环移动的位数k)。当K>0时,实现循环右移;当K<0时,实现循环左移。循环右移一位的意义是:将数组全体元素向后一个下标位置移动一个元素的位置,原数组最后一个元素移动到数组最前面第0个元素的位置。提示:当K<0时,转换成等价的循环右移。要求函数的形参是指针变量。

  以下是代码。

#include
using namespace std;
void swap(int a[],int k)
{
 if(k<0)
 {
  int n=(-k);int b[10];int j=0;
  for(int i=0;i  b[j]=a[i];
  for(int i=0;i<9-n+1;i++)
  a[i]=a[i+n];
  j=0;
  for(int i=9-n+1;i<10;i++,j++)
  a[i]=b[j];
 }
 if(k>0)
 {
  int b[10];int j=0;
  for(int i=9-k+1;i<10;i++,j++)
  b[j]=a[i];
  for(int i=9;i>=k;i--)
  a[i]=a[i-k];
  j=0;
  for(int i=0;i  a[i]=b[j];
 }
}
int main()
{
 int a[10],k;
 for(int i=0;i<10;i++)
 cin>>a[i];
 cin>>k;
 swap(a,k);
 for(int i=0;i<10;i++)
 {
  if(i==9) {cout< cout< return 0;
}

关键一:关于数据右移和左移问题,已经在前面章节出现过详细讲解。可当时没有及时消化,导致思路卡顿了很长时间,但是这样的基础问题是应该立刻想出解法并打出代码的。这也给我准备期末考试敲醒了警钟。

关键二:没有看清输出格式的要求。循环输出时直接

for(int i=0;i<10;i++)

{  cout<

你可能感兴趣的:(第二次作业)