1. 程式人生 > >返回一個數組中所有元素被第一個元素除的結果

返回一個數組中所有元素被第一個元素除的結果

#include "stdafx.h"
#include<iostream>
using namespace std;

int main()
{
 int i;
 int a[6]={0,3,10,5,34,90};
 void AllElemDividedInArray(int b[],int n);
 AllElemDividedInArray(a,6);
 return 0;
}

void AllElemDividedInArray(int arr[],int size)
{
	int i,temp;
	if(arr[0]==0)//判斷陣列第一個元素是否為0;
		cout<<"陣列中的元素第一個元素為0,不能作為除數"<<endl;

	/* 
	方法一,正著寫陣列中的迴圈時,要注意的是,第一個元素除以第一個元素
	後,arr[0]=1了,之後的元素再除以它時,數值時不變的。所以需要
	用一個臨時變數儲存第一個陣列元素的值。
	
	else{
	    for(i=0;i<size;i++)
		{                 
			if(i==0)
			{ 
				temp=arr[0];
				arr[0]=1;
		    }  
			arr[i]/=temp;
			cout<<arr[i]<<endl;
		}
	}
	*/
	/*
	方法二,從陣列中第二個元素遍歷並運算,最後修改陣列中第一個元素為1.
	*/
	else{
	    for(i=1;i<size;i++)
		{                 
			arr[i]/=arr[0];
		}
		arr[0]=1;
		for(i=1;i<size;i++)
			cout<<arr[i]<<endl;
	}
	/*
	方法三,逆著寫陣列中的元素,此時無需考慮第一個元素會變成1的問題
	else{
		for(i=size-1;i>=0;i--)
			//arr[i]/=arr[0];
	    for(i=0;i<size;i++)
			cout<<arr[i]<<endl;
	}
	*/
}