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

总结
这道题本来我不理解也不知道怎么去写,进过辅导和同学的讲解我逐渐的写出了最初的版本的代码,之后同学有对这个代码进行改进我就有写出了现在的优化版本。
总的来说我的两个程序离不开同学和辅导的讲解如果没有他们我想我还不知怎么去写这个程序。经过这个程序之后我认为我更应该努力的去学习,同学和辅导的帮助让我对程序的理解有了更深的一步,所以我很感谢他们。

猜你喜欢

转载自blog.csdn.net/qq_41936758/article/details/84145549