任务一
#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); }