关于C语言 二维数组编写九九乘法表的问题?我不明白为什么二维数组要用10行10列,我试过用9行9列老是出错
关于C语言二维数组编写九九乘法表的问题?我不明白为什么二维数组要用10行10列,我试过用9行9列老是出错,不知道原因。#include"stdio.h"main(){in...
关于C语言 二维数组编写九九乘法表的问题?我不明白为什么二维数组要用10行10列,我试过用9行9列老是出错,不知道原因。
#include "stdio.h"
main()
{
int a99[10][10],i,j;
for(i=1; i <10; i++)
for(j=1; j<=i; j++) a99[i][j]=i*j;
for(i=1; i<10; i++)
{
for(j=1;j<=i;j++) printf("%6d",a99[i][j]);
printf("\n");
}
} 展开
#include "stdio.h"
main()
{
int a99[10][10],i,j;
for(i=1; i <10; i++)
for(j=1; j<=i; j++) a99[i][j]=i*j;
for(i=1; i<10; i++)
{
for(j=1;j<=i;j++) printf("%6d",a99[i][j]);
printf("\n");
}
} 展开
展开全部
#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]是超范围的。
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]是超范围的。
展开全部
#include<iostream>
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<<j<<"*"<<i<<"="<<sum<<" ";
}
cout<<endl;
}
}
c++之99乘法表do-while语句- -
#include<iostream>
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<<"*"<<i<<"="<<sum<<"\t";//输出
j++; //每次j都+1
}while(j<=i); //当j大于i的时候退出循环
i++;//每次这里i+1
cout<<endl;//空一行
}while(i<=9);//当i大于9的时候退出
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<<j<<"*"<<i<<"="<<sum<<" ";
}
cout<<endl;
}
}
c++之99乘法表do-while语句- -
#include<iostream>
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<<"*"<<i<<"="<<sum<<"\t";//输出
j++; //每次j都+1
}while(j<=i); //当j大于i的时候退出循环
i++;//每次这里i+1
cout<<endl;//空一行
}while(i<=9);//当i大于9的时候退出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是从 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");
}
}
#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");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C语言的数组下标从0开始,所以你的i、j都要从0开始到9为止。修改为:
for ( i=0; i<9; i++)
for ( j=0; j<=i; j++) ...即可。
for ( i=0; i<9; i++)
for ( j=0; j<=i; j++) ...即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组下标是从0开始的,注意,你用9行9列的话,最后一组应该是a99[8][8],这样循环就超出数组长度了,那个a99[9][9]、a99[9][8]、a99[8][9]找不到。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询