2014-04-04 85 views
0

目前我的工作程序與二維陣列中創建從0到10000事情進展順利的隨機數,直到我建立我的變量。我的代碼運行良好,直到我爲我的變量設置字符類型。然後gcc編譯器發瘋了。我嘗試過不同的字符類型,但我仍然遇到一個奇怪的錯誤。感謝您查看我的代碼到目前爲止。麻煩與隨機數數組變量

32:  12. Terminate program. 
33: 
34: CALL: ./a.out AFTER COMPILING WITH gcc (WITHOUT USING THE -o SWITCH) 

40: */ 
41: 
42: 

47: #include <stdio.h> 
48: #include <stdlib.h> 
49: #include <time.h> 
50: 
51:/*****************************************************************************/ 

int main (void) 
{ 

72: int random_nmb [4][6]; 
73: int number, r, c; 
74: 
75: srandom((unsigned)time(NULL)); 

     for (c=0; c<=3; c++) 
     { 
      for (r=0; r<=5; r++) 
      { 
      number = random()%10001; 
      random_nmb [r][c] = number; 
      } 
     } 
} 

好的,這裏是錯誤代碼。

In file included from /usr/include/sys/_types.h:33, 
      from /usr/include/stdio.h:41, 
      from ghp9.c:47: 
/usr/include/machine/_types.h:51: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before 'typedef' 
/usr/include/machine/_types.h:74: error: expected '=', ',', ';', 'asm' or 
'__attribute__' before '__int_least8_t' 
+0

你爲什麼不*包含任何錯誤信息*?我們是否應該完全理解「gcc編譯器瘋狂」的含義? – unwind

+0

對不起@unwind,我只是沒有看到任何人在這些類型的網站上添加他們的錯誤代碼。 – user3497276

+0

你確定你發佈了整個源代碼嗎?你的代碼中沒有47行... – fritzone

回答

0

@fritzone現在我明白爲什麼你想要我的全部代碼。這全是字母'B'。感謝大家的幫助。以下是我的錯誤。讓我們把這個問題放在睡眠不足和缺乏經驗的地方。

B 
/* 
       PROGRAM DESCRIPTIVE HEADER FOR GHP #9 

SOURCE CODE FILE NAME: ghp9.c 

PROGRAMMER NAME: XXXX 

SHORT DESCRIPTION: This program will use an array to help pick 15 random 
integers from numbers 0 to 10000. 

ALGORITHM: 
2
int random_nmb[4][6]; 

上述語句定義random_nmb爲每int[6]類型的4對象,即陣列中,爲6點的整數的數組。因此,第一索引必須是在範圍[0, 3]和第二索引範圍[0, 5]。任何其他索引值都會嘗試訪問內存越界並調用未定義的行爲。

你只需要改變(在內部for循環)

random_nmb[r][c] = number; 

random_nmb[c][r] = number; 
     //^^ indices swapped 

注意數組索引已經交換,讓他們不出門的束縛。

+0

'字符[6]'和「字符」?真? – unwind

+0

@unwind對不起。這是一個錯字。更新它。謝謝:) – ajay

+0

@ajay謝謝...可悲的是我仍然有相同的錯誤信息。 – user3497276