C语言基础语法第五章函数 第五章作业 1.要求输入10个数求最大值及其下标 2.封装冒泡排序的函数 3.封装选择排序的函数
1.要求输入10个数求最大值及其下标:
#include <stdio.h>
int initArray(int array[],int len){
int i;
for (i=0;i<len;i++){
printf("请输入第%d个数\n",i+1);
scanf("%d",&array[i]);
}
}
int getMax(int array[],int len){
int i;
int max;
max = array[0];
for (i=0;i<len;i++){
if (max < array[i]){
max = array[i];
}
}
return max;
}
int getxiabiao(int array[],int len,int max){
int i,xiabiao;
for (i=0;i<len;i++){
if (array[i] == max){
xiabiao = i;
}
}
return xiabiao;
}
int main()
{
int arr[10];
int max;
int xiabiao;
initArray(arr,sizeof(arr)/sizeof(arr[0]));
max = getMax(arr,sizeof(arr)/sizeof(arr[0]));
xiabiao = getxiabiao(arr,sizeof(arr)/sizeof(arr[0]),max);
printf("最大数是:%d\n它的下标是:%d\n",max,xiabiao);
return 0;
}
2.封装冒泡排序的函数
#include <stdio.h>
int initarr(int arr[],int len)
{
int i;
for (i=0;i<len;i++){
printf("请输入第%d个数\n",i+1);
scanf("%d",&arr[i]);
}
}
int maopao(int arr[],int len)
{
int i;
int j;
int tmp;
for (i=0;i<len-1;i++)
{
for (j=0;j<len-i-1;j++)
{
if (arr[j]<arr[j+1])//从大到小
{
tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
}
int main()
{
int i;
int arry[8];
initarr(arry,sizeof(arry)/sizeof(arry[0]));
maopao(arry,sizeof(arry)/sizeof(arry[0]));
printf("冒泡排序的结果是:\n");
for (i=0;i<sizeof(arry)/sizeof(arry[0]);i++){
printf("%d\n",arry[i]);
}
return 0;
}
3.封装选择排序的函数
#include <stdio.h>
int initArr(int arry[],int len)
{
int i;
for (i=0;i<len;i++)
{
printf("请输入第%d个数\n",i+1);
scanf("%d",&arry[i]);
}
}
int choosesort(int arry[],int len)
{
int i;
int j;
int tmp;
for(i=0;i<len-1;i++)
{
for (j=i+1;j<len;j++)
{
if(arry[i]<arry[j]){
tmp=arry[i];
arry[i]=arry[j];
arry[j]=tmp;
}
}
}
}
int main()
{
int arr[8];
int i;
int len;
len= sizeof(arr)/sizeof(arr[0]);
initArr(arr,len);
choosesort(arr,len);
printf("选择排序:\n");
for (i=0;i<len;i++)
{
printf("%d\n",arr[i]);
}
return 0;
}```