热门

最新

红包

立Flag

投票

同城

我的

发布
mickey_0124
Mickey_0124
3 年前
truemickey_0124

《C语言第三版课后习题》12
课后习题10.3
输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
写三个函数; ①输入10个数;②进行处理;③输出10个数。使用指针
#include <stdio.h>
int main() {
void change(int *x);
int a[10],i,j;
for(i=0; i<10; i++) scanf("%d",&a[i]);
change(a);
for(i=0; i<10; i++) printf("%d ",a[i]);
}
void change(int *a) {
int *min,*max,*p,t;
max=min=a;
for(p=a+1; p<a+10; p++) if(*p>*max) max=p;
t=a[9];
a[9]=*max;
*max=t;// 最大值与第一个数交换
for(p=a+1; p<a+10; p++) if(*p<*min) min=p;
t=a[0];
a[0]=*min;
*min=t;// 最小值与第一个数交换
}

课后习题10.4
有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数。写一函数move:
实现以上功能,在主函数中输入n个数和输出调整后的n个数。
#include<stdio.h>
void move(int *a,int n,int m)
{
int t[100];
int i;
for(i=0;i<n;i++)
{
t[i]=a[i];
}
for(i=0;i<m;i++)
{
a[i]=t[n-m+i];
}
for(i=m;i<n;i++)
{
a[i]=t[i-m];
}
}

int main()
{
int a[20];
int n,m;
int i;
scanf("%d",&n);
for (i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
move(a,n,m);
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}

return 0;
}

CSDN App 扫码分享
分享
评论
1
打赏
  • 复制链接
  • 举报
下一条:
成功的dhcp 中继实验
立即登录