对一维数组进行全部元素,最大值的输出,并将数组顺序逆置,以及从大到小排序

#include<stdio.h>
#include<stdlib.h>
int main ()
{
	int arr[]={111,54,4,9,97,1,64,64,96,8,6,164,3,6};//声明一个整数型数组arr[]
	int a=sizeof(arr)/sizeof(arr[0]);//算出数组arr的元素个数
	printf("该数组的元素为:");
	for (int i=0;i<a;i++)//利用for循环输出arr中的元素
	{
		printf("%d ",arr[i]);
	}
	int max;
	max=0;//声明一个变量max,
	for (i=0;i<a;i++)//利用for循环让arr中的所有元素和max做比较
	{
		if(arr[i]>max)//如果数组中的元素比max的值大则把数组中的数值赋给max
		{
			max=arr[i];
		}
	}
	printf("\n该数组的最大值为:");
	printf("%d\n",max);//输出max
	int start,end,temp;//声明三个变量,作为起始数组元素的下标,和结尾数组元素的下标,以及临时变量
	printf("该数组逆置后为:");
	start=0;
	end=a-1;//因为数组元素的下标是从0开始,所以最后一位元素下标为数组元素总个数-1
	while(end>start)
	{
		temp=arr[start];//将第一个数组元素的值储存在临时变量temp中
		arr[start]=arr[end];//将最后一位数组元素的值赋给第一个元素
		arr[end]=temp;//将临时变量的值转给最后一位元素,完成数值的转移
		start++;//起始元素的下标+1,结尾元素的下标-1执行下一次循环,直到不满足循环条件即end<=start的时候
		end--;
	}
		for (i=0;i<a;i++)//利用for循环输出arr逆置后的元素
	{
		printf("%d ",arr[i]);
	}
	printf("\n该数组从大到小排序为:");
	for (int j=0;j<a;j++)//利用for循环的嵌套实现数组中的相邻的元素比较
	{
		for(int l=0;l<a;l++)
		{
			if(arr[j]>arr[l])//比较相邻元素,并将较大的数值赋给左侧
			{
				temp=arr[j];//元素的转换
				arr[j]=arr[l];
				arr[l]=temp;
			}
		}
	}
		for (i=0;i<a;i++)//利用for循环输出arr排序后的元素
	{
		printf("%d ",arr[i]);
	}

	system ("pause");
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章