c语言练习6
来源:互联网 发布:泰国清迈寺庙 知乎 编辑:程序博客网 时间:2024/05/14 07:47
5、有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前m个数(如下图所示)。写一函数实现以上功能,在主函数中输入n个整数和输出调整后的n个整数。
程序1:
#include"stdio.h"
int main()
{
int swap(int a[],int m);
int a[10],i,m;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&m);
swap(a,m);
return 0;
}
int swap(int a[],int m)
{
int *p,i,j;
for(p=a+10-m,i=0;i<m;i++)
printf("%d",*p++);
for(p=a,i=0;i<10-m;i++)
printf("%d",*p++);
}
程序2:(指针)
#include<stdio.h>
#include<malloc.h>
typedef struct tagLinkList
{
int *data;
struct tagLinkList *next;
}LinkList;
void insert(LinkList *head,int *x);
void swap(LinkList *head,int m);
int main()
{
int m,n,i,f[100];
LinkList *head,p;
head=((LinkList*)malloc(sizeof(LinkList)));
head->data=NULL;
head->next=NULL;
scanf("%d%d",&n,&m);
printf("n=%d;m=%d/n",n,m);
for(i=0;i<n;i++)
{
scanf("%d",&f[i]);
printf("%d ",f[i]);
insert(head,f+i);
}
printf("/n");
swap(head,m);
p=*(head->next);
while(p.next!=NULL)
{
printf("%d ",*(p.data));
p=*(p.next);
}
printf("%d/n",*(p.data));
return 0;
}
void insert(LinkList *head,int *x)
{
LinkList *p,*temp;
temp=(LinkList *)malloc(sizeof(LinkList));
if(head->next==NULL)
{
head->next=temp;
}
else
{
p=head;
while(p->next!=NULL)
{
p=p->next;
}
p->next=temp;
}
temp->data=x;
temp->next=NULL;
}
void swap(LinkList *head,int m)
{
LinkList *p,*q;
int i=0;
while(i<m)
{
p=head;
while (p->next!=NULL)
{
q=p;
p=p->next;
}
q->next=NULL;
p->next=head->next;
head->next=p;
i++;
}
}
- c语言练习6
- C语言基础练习6
- c语言小练习6
- c语言练习 6-3. 单词长度
- c语言练习1
- C语言综合练习
- c语言练习1
- c语言练习2
- c语言练习3
- c语言练习4
- c语言练习5
- c语言练习7
- c语言练习8
- c语言练习9
- c语言练习10
- c语言练习11
- C语言练习(1)
- C语言练习(2)
- LinkedList 源码分析
- Linux Shell学习笔记五
- Emacs颜色
- WinSock 下 select() 模型的一个问题
- poj2243 Knight Moves
- c语言练习6
- liigo:2010年底平板电脑(MID)横向参数对比,附需求分析
- 分享成都国际软件设计与应用决赛经验
- 只读内存区的写操作
- Linux下段错误的原因以及调试方法
- hash算法
- 作为千千万万的IT开发工程师的我们路在何方
- 每位linux系统管理员必须知道的20条监控工具
- 启动哪种shell