关于C语言 二维数组编写九九乘法表的问题?我不明白为什么二维数组要用10行10列,我试过用9行9列老是出错

2025年02月15日 22:00
有5个网友回答
网友(1):

#include "stdio.h"
main()
{
int a99[9][9],i,j;
for(i=0; i <9; i++) //i = 0
for(j=0; j<=i; j++) a99[i][j]=i*j; //j = 0
for(i=0; i<9; i++) //i = 0
{
for(j=0;j<=i;j++) printf("%6d",a99[i][j]); //j = 0
printf("\n");
}
}
正确的写法应该是上面这样的。
这里涉及到2个问题:
1.数组声明的时候a[9]就是有9个元素的数组,a[10]就是有10和元素的数组
2.数组赋值的时候第一个元素的下标是从0开始的,即a[0],最后一个下标是声明时的数字-1,如:声明时:a[9],最后一个元素是a[8]。a[9]是超范围的。

网友(2):

#include
using namespace std;

int main()
{
int i;
int j;
int sum;
for(i=1;i<=9;i++){//一个for语句的嵌套
for(j=1;j<=i;j++){
sum=i*j;
cout< }
cout< }
}

c++之99乘法表do-while语句- -

#include
using namespace std;

int main()
{
int i=1;//定义i的初识值
int j=1;//定义j的初识值
int sum;//定义一个变量sum
do{
j=1; //定义了j为1这样没次j都从1开始
do{
sum=i*j; //把每次i*j的值赋值给sum
cout< j++; //每次j都+1
}while(j<=i); //当j大于i的时候退出循环
i++;//每次这里i+1
cout< }while(i<=9);//当i大于9的时候退出

网友(3):

你是从 i = 1开始的 所以要到10才可以 。从i= 0开始就可以了
#include "stdio.h"
main()
{
int a99[9][9],i,j;
for(i=0; i <9; i++)
for(j=1; j<=i; j++) a99[i][j]=i*j;
for(i=1; i<9; i++)
{
for(j=0;j<=i;j++) printf("%6d",a99[i][j]);
printf("\n");
}
}

网友(4):

C语言的数组下标从0开始,所以你的i、j都要从0开始到9为止。修改为:
for ( i=0; i<9; i++)
for ( j=0; j<=i; j++) ...即可。

网友(5):

数组下标是从0开始的,注意,你用9行9列的话,最后一组应该是a99[8][8],这样循环就超出数组长度了,那个a99[9][9]、a99[9][8]、a99[8][9]找不到。