1.实现冒泡排序
要求: .
1.定义函数实现输入 有参无返:参数个数,指针
2.定义函数实现冒泡排序+简单选择排序有 参无返:参数个数,指针
3,定义函数实现输出有参无返:参数个数,指针
冒泡排序
#include<stdio.h>
void Scanf(int *arr,int len);
void BubbleSort(int *arr,int len);
void Print(int *arr,int len);
int main(){
int len;
int arr[5];
printf("please enter a array:\n");
len=sizeof(arr)/sizeof(int);
Scanf(arr,len);
BubbleSort(arr,len);
printf("Result:\n");
Print(arr,len);
return 0;
}
void Scanf(int *arr,int len){
int i;
for(i=0;i<len;i++){
scanf("%d",arr+i);
}
}
void BubbleSort(int *arr,int len){
int i,j,temp;
for(i=1;i<len-1;i++){
for(j=0;j<len-i;j++){
if(*(arr+j)>*(arr+j+1)){
temp=*(arr+j);
*(arr+j)=*(arr+j+1);
*(arr+j+1)=temp;
}
}
}
}
void Print(int *arr,int len){
int i;
for(i=0;i<len;i++)
printf("%d ",*(arr+i));
}
运行结果如图:
快速选择排序
#include<stdio.h>
void Scanf(int *arr,int len);
void SelectionSort(int *arr,int len);
void Print(int *arr,int len);
int main(){
int i,len;
int arr[5];
printf("please enter a array:\n");
len=sizeof(arr)/sizeof(int);
Scanf(arr,len);
SelectionSort(arr,len);
printf("Result:\n");
Print(arr,len);
return 0;
}
void Scanf(int *arr,int len){
int i;
for(i=0;i<len;i++){
scanf("%d",arr+i);
}
}
void SelectionSort(int *arr,int len){
int i,j,min,temp;
for(i=0;i<len-1;i++){
min=i;
for(j=i+1;j<len;j++){
if(*(arr+min)>*(arr+j)){
min=j;
}
}
if(min!=i){
temp=*(arr+min);
*(arr+min)=*(arr+i);
*(arr+i)=temp;
}
}
}
void Print(int *arr,int len){
int i;
for(i=0;i<len;i++)
printf("%d ",*(arr+i));
}
运行结果如图:
2.字符串连接[纯实用指针实现]有参无返函数参数:两个字符指针
#include<stdio.h>
void Strcat(char *str1,char *str2);
int main(){
char str1[40],str2[20];
printf("please enter two strings:\n");
gets(str1);
gets(str2);
Strcat(str1,str2);
}
void Strcat(char *str1,char *str2){
int i,len=0;
for(i=0;*(str1+i)!='\0';i++){
len++;
}
for(i=0;*(str2+i)!='\0';i++){
*(str1+len++)=*(str2+i);
}
*(str1+len)='\0';
printf("%s",str1);
}
运行结果如图: