1,使用指针实现冒泡
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void Bubble(int *p,int n){
for(int i=0;i<n-1;i++){
for(int j=0;j<n-i-1;j++){
if(*(p+j)>*(p+j+1)){
int t=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=t;
}
}
}
}
int main(int argc, const char *argv[])
{
int arr[6]={55,99,11,22,66,8};
Bubble(arr,6);
for(int i=0;i<6;i++){
printf("%d\t",arr[i]);
}
return 0;
}
2.使用选择排序实现
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void simple_sort(int *p,int n){
for(int i=0;i<n;i++){
int max=i;
for(int j=i+1;j<n;j++){
if(*(p+max)<*(p+j)){
max=j;
}
}
if(max!=i){
int t=*(p+max);
*(p+max)=*(p+i);
*(p+i)=t;
}
}
}
int main(int argc, const char *argv[])
{
int arr[6]={55,99,11,22,66,8};
simple_sort(arr,6);
for(int i=0;i<6;i++){
printf("%d\t",arr[i]);
}
return 0;
}
3.使用指针实现字符串比较
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int my_strcmp(char *s1, char *s2){
int i=0;
while(*(s1+i)==*(s2+i)){
if(*(s1+i)==0){
break;
}
i++;
}
return *(s1+i)-*(s2+i);
}
int main(int argc, const char *argv[])
{
char s1[]="add";
char s2[]="add";
int a=my_strcmp(s1,s2);
printf("%d\n",a);
if(a>0){
printf("s1>s1");
}else if(a<0){
printf("s1<s2");
}else{
printf("s1=s2");
}
return 0;
}
4.使用指针实现字符串拷贝
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void my_strcpy(char *s1,char *s2){
int i=0;
while(*(s2+i)!=0){
*(s1+i)=*(s2+i);
i++;
}
*(s1+i)=0;
}
int main(int argc, const char *argv[])
{
char str1[30];
gets(str1);
char str2[30];
gets(str2);
my_strcpy(str1,str2);
puts(str1);
puts(str2);
return 0;
}