1.用指针实现输入输出冒简单选择
#include "stdio.h"
void input(int *p,int len){
for(int i=0;i<len;i++){
scanf("%d",p+i);
}
}
void maopao(int *p,int len){
for(int i=0;i<len-1;i++){
for(int j=0;j<len-1-i;j++){
if(*(p+j)>*(p+j+1)){
int t=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=t;
}
}
// printf("%d\n",p[i]);
}
}
void SelectionSort(int *p,int len){
for(int i=0;i<len;i++){
int r=i;
for(int j=i+1;j<len;j++){
if(*(p+r)>*(p+j)){ //更新最小值下标
r=j;
}
if(r!=i){ //交换
int t=*(p+r);
*(p+r)=*(p+i);
*(p+i)=t;
}
}
}
for(int i=0;i<len;i++){
printf("%d\t",*(p+i));
}
printf("\n");
}
void output(int *p,int len){
for(int i=0;i<len;i++){
printf("%d\t",*(p+i));
}
}
int main(){
int arr[5];
int len=5;
int *p=arr;
input(arr,len);
maopao(arr,5);
SelectionSort(arr,5);
output(arr,5);
return 0;
}
2.用指针实现strcat
#include "stdio.h"
#include "string.h"
void my_strcat(char *p1,char *p2,int i){
// int i=strlen();
for(int j=0;*(p2+j)!='\0';j++){
*(p1+i)=*(p2+j);
i++;
}
printf("%s\n",p1);
}
int main(){
char *p1,*p2;
char a[20]="abcd";
char b[]="abc";
int i=strlen(a);
p1=a;p2=b;
my_strcat(p1,p2,i);
return 0;
}