NEFU锐格作业三[指针运用]

​​推荐:NEFU大一下C语言锐格实验与作业参考程序目录​​

知识点

题目

知识点

7133

指针实现swap

7149

相同函数不同功能分支

7120

指针实现排序

题目

7133

#include<stdio.h>
#include<stdlib.h>
#define N 105
void swap(int *a,int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
}
int a[N];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)scanf("%d",&a[i]);
int max,min,maxi,mini;
max=min=a[0];
maxi=mini=0;
for(int i=1;i<n;i++)
{
if(a[i]>max)
{
max=a[i];
maxi=i;
}
if(a[i]<min)
{
min=a[i];
mini=i;
}
}
swap(a+maxi,a+mini);
for(int i=0;i<n;i++)printf("%d ",a[i]);
return 0;
}

7149

#include<stdio.h>
#include<stdlib.h>
#define N 105

void search(int *a,int n,int op)
{
int res=a[0],pos=0;
for(int i=1;i<n;i++)
{
if(op&&a[i]>res)
{
res=a[i];
pos=i;
}
if(!op&&a[i]<res)
{
res=a[i];
pos=i;
}
}
printf("%d %d\n",res,pos+1);
}
int main()
{
int n;
int a[N];
scanf("%d",&n);
for(int i=0;i<n;i++)scanf("%d",&a[i]);
search(a,n,1);
search(a,n,0);
return 0;
}

7120

可能写复杂了,写了个冒泡,排序规则为是否为0。

#include<stdio.h>
#include<stdlib.h>
#define N 105

int n;
int a[N];

void swap(int *a,int *b)
{
int tmp=*a;
*a=*b;
*b=tmp;
}
void sort(int *a,int n)
{
for(int i=0;i<n-1;i++)
for(int j=0;j<n-1;j++)
if(a[j]==0&&a[j+1]!=0)swap(a+j,a+j+1);
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++)scanf("%d",&a[i]);
sort(a,n);
for(int i=0;i<n;i++)printf("%d ",a[i]);
return 0;
}