电脑网络 手机数码 生活 游戏 体育运动 明星影音 休闲爱好 文化艺术 就业职场 教育科学 健康医疗 商业理财 情感家庭 地区 其他

一个还不需要用链表的C++问题

时间:2022-11-23 21:00:32

#include<iostream>

using namespace std;

//void move(int*p,int m,int n)                  应该是打//的子函数需要改一下吧........

//{

//int i,j=0,temp;

//for(i=0;i<n%m;i++)

//{

//p=0;        ////不知道p的地址怎么返回主函数的&a[0] (我也不知道怎么描述)

//temp=*p;

//for(p++;j<m;p++,j++)

//*(p-1)=*(p);

//*p=temp;

}

}

int main()

{

int a[20],m,n,*p;

cout<<"请输入数据个数m:";

cin>>m;

a[0]=1;

a[1]=1;

for(p=&a[2];p-a<m;p++)

*p=*(p-1)+*(p-2);                               // 生成斐波拉契数列

cout<<"移动前的数据为:"<<endl;

for(p=a;p-a<m;p++)

cout<<*p<<" ";

cout<<endl;

cout<<"请输入左移的位数n:";

cin>>n;

cout<<"移动后的数据为:"<<endl;

p=a;

move((int*)p,m,n);

for(p=a;p-a<m;p++)

cout<<*p<<" ";

cout<<endl;

return 0;

}


大一的题目

最佳答案

你的程序的确有问题的,改过的参考(只要改函数部分)

void move(int *p, int m, int n)
{
 int i, j, temp, *t = p; //数组头不能改,所以要加一指针
 for (i = 0; i < n % m; i++)
   {
     t = p; //每次重新指向头
     temp = *t;
     for (t++, j = 0; j < m - 1; t++, j++) //最后一个不能取后面的了,所以要-1
       *(t - 1) = *t;
     *(t - 1) = temp; //最后一个在t-1
   }
}

相关推荐
  • 求高手解答一个关于c语言链表的问题。。。。。
  • C语言数据结构题目 用链表 问题描述:设计一个实现任意长的整...
  • 一个签到程序如何用含链表和文件的C语言表示?
  • 怎样建立一个不带头结点的单链表?用c语言
  • 一个c语言的链表问题,总是产生垃圾值,好几个指针错误找不到。
  • 数据结构!建立链表,要求其顺序输出后再逆序输出 。这个代码有什么问题吗?
  • 必采纳,一个关于C语言链表的问题不是很懂, p指向head的next域...
  • © 优好问答