陣列操作,計算組元素的極值函式

bug不存在的發表於2021-10-22

從鍵盤輸入資料對陣列進行初始化,編寫計算陣列元素的最大值、最小值和平均值和刪除某一個位置元素的函式。

陣列操作,參見下例程式,熟悉陣列運算。

#include <iostream>

using namespace std;

void sort(int T[])

{int temp;

    for (int i=0;i<20;i++)

    {

        for (int j=i+1;j<20;j++)

        {

            if (T[i]<=T[j])

            {

                temp=T[i];

                T[i]=T[j];

                T[j]=temp;

            }

        }

    }

}


int search(int T[],int key)

{

    int index;

    for(int i=0;i<20;i++)

    {

        if (T[i]==key)

        {    index=i;

            break;

        }


    }

    return index;

}

void main()

{

    int A[20]={12,23,34,10,16,45,29,34,98,56,67,78,23,44,55,66,77,88,99,69};

   

    sort(A);


    for (int i=0;i<20;i++)

    {

        cout<< A[i] <<"  ";   

    }

    int kk;

    cout<<"輸入要查詢的資料:";

    cin>>kk;

    kk=search(A,kk);

    cout <<"查詢的資料在陣列的第"<<kk<<"位置。"<<endl;



}

3、按照上例的方法生成一個一維陣列,從鍵盤輸入資料對陣列進行初始化,編寫計算陣列元素的最大值、最小值和平均值和刪除某一個位置元素的函式。


以下是我的程式

//從鍵盤輸入資料對陣列進行初始化,編寫計算陣列元素的最大值、最小值和平均值和刪除某一個位置元素的函式//


#include "stdafx.h"

#include <iostream>

using namespace std;

int A[];


void max(int T[])//這是求最大值的函式//

{   int temp;

    for (int i=0;i<5;i++)

    {

        for (int j=i+1;j<5;j++)

        {

            if (T[i]<=T[j])

            {

                temp=T[i];

                T[i]=T[j];

                T[j]=temp;

            }

        }

    }

    cout<<T[0];

}


void min(int T[])//這是求最小值的函式//

{   int temp;

    for (int i=0;i<5;i++)

    {

        for (int j=i+1;j<5;j++)

        {

            if (T[j]<=T[i])

            {

                temp=T[i];

                T[i]=T[j];

                T[j]=temp;

            }

        }

    }

       cout<<T[0];

}


void average(int A[],int aver)//這是最平均值的函式,但不知道為什麼輸出的時候就是沒有初始化//

{   int sum;


    for (int i=0;i<5;i++)

    {

       sum+=A[i];

    }

    aver=sum/5;

    cout<<aver;  

}

void delete_item(int A[], int item, int* n) //這是刪除一個資料的函式,我自己上網找的,因為刪除其中一個資料是可以找到它然後把後面的元素往前推//

{

  int i, j;

  for(i=0;i <(*n);i++)

  {

    if(A[i]==item)

    {

      for(j=i;j <(*n);j++)

        A[j]=A[j+1];

      (*n)--;

    }

  }



 

void main()

{   int aver;

    int A[5]={0};

    for(int i=0;i<5;i++)

    {

    cout<<"請輸入第"<<i<<"個資料:";

    cin>>A[i];

    }

   

    cout<<"max=";

    max(A);

    cout<<""<<endl;

    cout<<"min=";

    min(A);

    cout<<""<<endl;

    cout<<"average=";

    average(A,aver);

    cout<<""<<endl;

   

    int n;

    n=sizeof(A)/sizeof(int); //這個是引用了C語言的,但是我學的是C++,希望透過visualc++6.0就可以編譯//

    printf("n=%d\n", &n);

    delete_item(A, A[5], n);

for(;i<5;i++)

    {  cout<<A[i]<<" ";

    }


}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70007877/viewspace-2838791/,如需轉載,請註明出處,否則將追究法律責任。

相關文章