程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> gcc下的C語言細節

gcc下的C語言細節

編輯:關於C

已經很長一段時間沒有ac題了,一周之前報名參加了計算客的編程大賽,雖然我的結果不

是特別理想,但是還是學到了一些東西。下邊,我先貼出題目和對應的程序源碼:

\

\

\

\

代碼如下:(c語言)

 

#include
int main()
{
	int n = 0;
	int i = 0;
	int totalTime = 0;
	scanf("%d",&n);
	int p[n];
	if (n >= 1 && n <= 10000)
	{
		for (i = 0;i < n;i++)
		{
			scanf("%d",&p[i]);
		}
		if (n % 2 == 1)
		{
			for (i = 0;i < n; i+=2)
			{
				totalTime += p[i];
			}
		}
		else
		{
			for (i = 0;i < n-2; i += 2)
			{
				totalTime += p[i];
			}
			if (p[n - 1]>p[n - 2])
			{
				totalTime += p[n-1];
			}
			else
				totalTime += p[n-2];
		}
		printf("%d",totalTime);
	}

	return 0;
}


 

代碼分析:細心的你,有可能會發現代碼中出現了這樣的代碼:

 

int n = 0;
scanf("%d",&n);
int p[n];


 

這樣的代碼是通過的嗎?是對的,因為acm用的編譯器是gcc,這還不是重點,gcc中支

持這樣定義數組,還記得在《指針,數組》這篇博客中,我寫到初學者一般會寫出類似

上邊那句的代碼,當時還說是不對的。現在,我糾正,它是在windows下的vs中是不支

持的,但是gcc下允許這樣。

acm考驗的是細心程度,也是希望我們寫出規范的代碼,更有助於提高我們的算法。希

望以後多加練習。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved