1.在主函数定义一维数组并赋值
要求:①.定义函数实现冒泡排序[有参无返函数]
②.定义函数实现输出[有参无返函数]
#include<stdio.h>
void BubbleSort(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);
for(i=0;i<len;i++){
scanf("%d",&arr[i]);
}
BubbleSort(arr,len);
Print(arr,len);
return 0;
}
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]);
}
运行结果如图:
2.在主函数定义二维数组并赋值
要求:①.定义函数计算二维数组最大值[有参无返函数,返回最大值]
②.定义函数计算二维数组最小值[有参无返函数,返回最大值]
③.定义函数计算二维数组第二大值[有参无返函数,返回最大值]
#include<stdio.h>
int Max(int arr[][3],int line,int row){
int i,j,max;
max=arr[0][0];
for(i=0;i<line;i++){
for(j=0;j<row;j++){
if(max<arr[i][j]){
max=arr[i][j];
}
}
}
return max;
}
int Min(int arr[][3],int line,int row){
int i,j,min;
min=arr[0][0];
for(i=0;i<line;i++){
for(j=0;j<row;j++){
if(min>arr[i][j]){
min=arr[i][j];
}
}
}
return min;
}
int SecondMax(int arr[][3],int line,int row){
int i,j,secondmax;
int max_i,max_j,min_i,min_j;
int max2_i,min2_j;
for(i=0;i<line;i++){
for(j=0;j<row;j++){
if(arr[i][j]==Max(arr,line,row)){
max_i=i;
max_j=i;
}
if(arr[i][j]==Min(arr,line,row)){
min_i=i;
min_j=i;
}
}
}
secondmax=Min(arr,line,row);
for(i=0;i<line;i++){
for(j=0;j<row;j++){
if(i==max_i&&j==max_j){
continue;
}
if(secondmax<arr[i][j]){
secondmax=arr[i][j];
}
}
}
return secondmax;
}
int main(){
int i,j,line,row;
int arr[3][3]={0};
line=sizeof(arr)/sizeof(arr[0]);
row=sizeof(arr[0])/sizeof(arr[0][0]);
printf("请输入一个二维数组:\n");
for(i=0;i<line;i++){
for(j=0;j<row;j++){
scanf("%d",&arr[i][j]);
}
}
int max,min,secondmax;
max=Max(arr,line,row);
min=Min(arr,line,row);
secondmax=SecondMax(arr,line,row);
printf("二维数组最大值为:%d,最小值为:%d,第二大值为:%d",max,min,secondmax);
return 0;
}
运行结果如图:
3.定义函数实现字符串拷贝
#include<stdio.h>
void Strcpy(char *str1,char *str2);
int main(){
char str1[40],str2[20];
printf("please enter two strings:\n");
gets(str1);
gets(str2);
Strcpy(str1,str2);
}
void Strcpy(char *str1,char *str2){
int i;
for(i=0;str1[i]!='\0';i++){
str1[i]=str2[i];
}
printf("拷贝后:%s",str1);
}
运行结果如图:
4.定义函数实现字符串连接
#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);
}
运行结果如图: