2016-02-27 189 views
1

我想嘗試讓用戶將行輸入到特定矩陣(維度是用戶定義的,最大值爲15x15)到字符串中。然後,我想嘗試掃描該字符串的空格數量,以確保如果用戶指定了5列,則用戶每行只輸入5個條目。因此,如果用戶指定了5x5矩陣,他應該在一行中輸入:讀取字符串並將其轉換爲2D int矩陣C

然後在接下來的,

6 7 8 9 10等。

每行輸入應該對應一行。因此,例如,如果空間數量超過4,我會知道用戶輸入的數量超過了他應該有的每行數量。然後,我想以某種方式在讀取所有行之後對該字符串進行分段,並將其轉換爲二維整數數組,以便之後有資格進行矩陣加法或乘法運算。 有沒有人有任何暗示要如何去做這個,如果問題描述是有道理的?

+0

到目前爲止做了什麼? – Cherubim

+1

計算數字而不是空格會更可靠(和用戶友好)。 –

+1

查看類似[[recent recently question]](http://stackoverflow.com/questions/35663153/how-to-count-amount-of-elements-in-a-row-of-a-matrix-in-c) –

回答

0

假設你有一個字符串數組:

char string[N]; 

int spaces_num=0,i=0,last_spaces=0; 

while(true) 
{ 
    scanf('%s',string);//Perhaps ma need a better way to read user input 
    //loop the folowing code until user not needed for user input 
    while(string[i]!=='\0' && i < N) 
    { 
    if(string[i]==' ') spaces_num++; 
    i++; 
    } 

    if(last_spaces>0 && spaces_num!=last_spaces) 
    { 
    break; 
    } 
    else 
    { 
    last_spaces=spaces_num; 
    } 
} 

我希望它的工作原理,上面的代碼可能需要固定,但它僅僅是TI給予解決的想法。不要太字面。

+0

這裏有一些語法錯誤,我看不到索引增加了。 –

+0

這是對解決方案給一些想法。我必須爲年齡寫入ANSI C。 –

+0

'string [i]!=='\ 0'||我對我來說看起來像一個bug - 你想要一個'&&'在那裏。 – Quentin