對一維數組進行全部元素,最大值的輸出,並將數組順序逆置,以及從大到小排序

#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;
}


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