我试图理解这段代码:
String []stringarray = new String[10];
public void add()
{
System.out.println ("Enter 10 Strings :");
for ( int i=0; i<10 ; i++ )
stringarray[i] = Genio.getString();
}
public void display()
{
for (int i=0; i<10/2; i++)
{
String tmp = stringarray[i];
stringarray[i] = stringarray[10 - i - 1];
stringarray[10 - i - 1] = tmp;
System.out.println (stringarray[i]);
}
}
逻辑上, const int STUDENTNO(3);
const int MODULENO(4);
double marks[STUDENTNO][MODULENO] = { { 89.0, 22.5, 43.2, 34.0 },
{ 66.5, 26.0, 47.4, 0.0 },
{ 89.0, 30.8, 71.3, 12.0 } };
和STUDENTNO
的值应减1,假设数组中的第一个位置为MODULENO
。
有人可以解释一下为什么不是这样吗?
答案 0 :(得分:2)
如果您有一个大小为N
的数组,则有效索引在C和C ++中从0
到N-1
。
这也扩展到多维数组。当您有一个大小为M x N
的数组时,有效索引从[0][0]
到[M-1][N-1]
。
答案 1 :(得分:1)
有3名学生和4个模块。所以学生人数是3,模块数量是4.这真的很简单。用于特定学生和特定模块的标识符与学生或模块的数量无关。
如果您尝试在提供的代码中减少STUDENTNO
或MODULENO
,则marks
的声明将是非法的,因为它指定了3名学生和4个模块的标记。 (试试吧。)