作业:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
// 1. 使用指针实现冒泡
// void Bubble(int *p, int n)
void Bubble(int *p, int n);
// 2. 使用选择排序实现
// void simple_sort(int *p, int n)
void simple_sort(int *p, int n);
// 3. 使用指针实现字符串比较
// int my_strcmp(char *s1, char *s2)
int my_strcmp(char *s1, char *s2);
// 4. 使用指针实现字符串拷贝
// void my_strcpy(char *s1, char *s2)
void my_strcpy(char *s1, char *s2);
int main(int argc, const char *argv[]){
int num = 0;
printf("Please set your arr's num : ");
scanf("%d", &num);
int arr[num];
for(int i = 0; i < num; i++){
printf("arr[%d] : ", i);
scanf("%d", &arr[i]);
}
printf("SORT 1 : \n");
Bubble(arr, num);
for(int i = 0; i < num; i++){
printf("arr[%d] : ", i);
printf("%d\n", arr[i]);
}
printf("\n");
printf("SORT 2 : \n");
simple_sort(arr, num);
for(int i = 0; i < num; i++){
printf("arr[%d] : ", i);
printf("%d\n", arr[i]);
}
char str1[50] = "";
char str2[50] = "";
getchar();
printf("Please give your str1 : ");
gets(str1);
printf("Please give your str2 : ");
gets(str2);
printf("result : %d\n", my_strcmp(str1, str2));
puts(str1);
puts(str2);
printf("strcpy : \n");
my_strcpy(str1, str2);
puts(str1);
puts(str2);
return 0;
}
void Bubble(int *p, int n){
for(int i = 0; i < n-1; i++){
int count = 0;
for(int j = 0; j < n-1-i; j++){
if(*(p+j) > *(p+j+1)){
int temp = *(p+j);
*(p+j) = *(p+j+1);
*(p+j+1) = temp;
count++;
}
}
if(count == 0){
break;
}
}
}
void simple_sort(int *p, int n){
for(int i = 0; i < n; i++){
int *max = p+i;
for(int j = i; j < n; j++){
if(*max < *(p+j)){
max = p+j;
}
}
if(max != p+i){
int temp = *max;
*max = *(p+i);;
*(p+i) = temp;
}
}
}
int my_strcmp(char *s1, char *s2){
while(*s1 == *s2){
if(*s1 == 0)
break;
s1++;
s2++;
}
return *s1-*s2;
}
void my_strcpy(char *s1, char *s2){
if(strlen(s1) < strlen(s2)){printf("error\n"); return;}
while(*s2){
*s1 = *s2;
s1++;
s2++;
}
*s1 = *s2;
}