1. 程式人生 > >Linuxc基礎 三

Linuxc基礎 三

今天寫了一個程式這個程式也讓我知道了我還有許多的東西要學。
程式的內容是一個1到n-1的陣列其中某個數重複了請把重複的數打印出來。
程式碼

最出的版本:

#include <stdio.h>
int main()
{
    int i,m;   
    int a[5]={3,2,3,1,0};
    int b[5]={0};
    for(i=0;i<5;i++)
    {
        m=a[i];
        b[m]++;
      if(b[m]==2)
        {
            printf("%d\n",m);
            return;
        }
    }
    return 0;
}

這是優化的版本:

#include <stdio.h>


int main()
{
	int m;
	int temp;
	temp=5;
	int a[5]={3,4,3,1,2};
	while (a[temp-1]!=temp)
	{
		m=a[temp-1];
		a[temp-1]=temp;
		temp=m;
	}
	printf("%d\n",temp);

	return 0;
}

總結
這道題本來我不理解也不知道怎麼去寫,進過輔導和同學的講解我逐漸的寫出了最初的版本的程式碼,之後同學有對這個程式碼進行改進我就有寫出了現在的優化版本。
總的來說我的兩個程式離不開同學和輔導的講解如果沒有他們我想我還不知怎麼去寫這個程式。經過這個程式之後我認為我更應該努力的去學習,同學和輔導的幫助讓我對程式的理解有了更深的一步,所以我很感謝他們。