2016-02-27 142 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