任务一
#include<stdio.h>
#include<string.h>
#define N 20
void getx(char *a,char *y,int n);
void getr(char *y,char *z);
int main(void)
{
char a[N],y[N],z[N];
printf("Enter a string: \n");
gets(a);
int n;
printf("Enter an integer: \n");
scanf("%d",&n);
getx(a,y,n);
getr(y,z);
}
void getx(char *a,char *y,int n)
{
char *p=a;
while(*p!='\0')p++;
p-=n;
strcpy(y,p);
printf("复制后的新数组 \n");
puts(y);
}
void getr(char *y,char *z)
{
char *p=y;
int i=0;
while(*p!='\0')p++;
while(p--!=y){
z[i]=*p;
i++;
}
z[i]='\0';
printf("反转后的新数组 \n");
puts(z);
}
任务二
#include<stdio.h>
#include<string.h>
int n;
void sorttomax(int *arr,int n);
void sorttomin(int *arr);
int main(void)
{
printf("请输入数组大小:\n");
scanf("%d",&n);
int arr[100];
printf("请输入%d个元素:\n",n);
for(int i=0;i<n;i++)
scanf("%d",&arr[i]);
sorttomax(arr,n);
sorttomin(arr);
return 0;
}
void sorttomax(int *arr,int n)
{
int *p=arr;
int temp,i;
for(i=0;i<n;i++)
for(int j=1+i;j<n;j++)
if(*(p+i)<*(p+j)) {
temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
printf("由大到小排序并输出:\n");
for(i=0;i<n;i++)
printf("%d\n",*(p+i));
}
void sorttomin(int *arr)
{
int *p=arr+n;
printf("由小到大排序并输出:\n");
while(p--!=arr)printf("%d\n",*p);
}
#include<stdio.h>
#include<string.h>
#define N 20
int main(void){
char a[N];
char *p=a;
gets(a);
while(*p!='\0')
{
if((*p>=48&&*p<=57))
strcpy(p,p+1);
else p++;
}
puts(a);
}