输入一个正整数n(0<n<10),输出九九乘法表的前nxn项(将乘数、被乘数和乘积放入一个二维数组中
#include<stdio.h>intmain(){inta[10][10];inti,j,n;scanf("%d",&n);for(i=1;i<n;i++)a[i][...
#include<stdio.h>
int main()
{
int a[10][10];
int i,j,n;
scanf("%d",&n);
for(i=1;i<n;i++)
a[i][0]=i;
for(j=0;j<=n;j++)
a[0][j]=j;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
a[i][j]=i*j;
}
for(i=0;i<=n;i++)
{
for(j=0;j<=n;j++)
if(i==0&&j==0)
printf("%c ",'*');
else
printf("%3d",&a[i][j]);
}
return 0;
} 展开
int main()
{
int a[10][10];
int i,j,n;
scanf("%d",&n);
for(i=1;i<n;i++)
a[i][0]=i;
for(j=0;j<=n;j++)
a[0][j]=j;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
a[i][j]=i*j;
}
for(i=0;i<=n;i++)
{
for(j=0;j<=n;j++)
if(i==0&&j==0)
printf("%c ",'*');
else
printf("%3d",&a[i][j]);
}
return 0;
} 展开
1个回答
2015-11-22
展开全部
/*
思路:
1)定义一个n行n列的矩阵,int arr[n-1][n-1];
2)以第0行存储乘数,第0列存储被乘数。
则第一个乘数是arr[0][1],最后一个乘数是arr[0][n-1]
第一个被乘数是arr[1][0],最后一个被乘数是arr[n-1][0]
3)除开乘数和被乘数的数组空间存储乘积
则第一个乘积是arr[1][1]
最后一个乘积是arr[n-1][n-1]
4)arr[0][0]这个存储单元我舍弃掉了
*/
#include<stdio.h>
int main(){
//定义变量存储输入数
int n = 0;
//提示输入一个数(0<n<10)
printf("请输入一个数(0<n<10):");
scanf("%d",&n);
//定义数组存储乘数,被乘数,乘积
int arr[n-1][n-1];
int i = 0,j = 0;
//循环给数组赋值
for(i = 1;i<n;i++){
for(j =1;j<n;j++){
arr[0][j] = j;//存储乘数
arr[i][0] = i;//存储被乘数
arr[i][j] = i*j;//存储乘积
}
}
//打印乘数
printf("乘数是:");
for(j = 1;j<n;j++){
printf("%d\t",arr[0][j]);
}
prentf("\n");
//打印被乘数
printf("被乘数是:");
for(i = 1;i<n;i++){
printf("%d\t",arr[i][0]);
}
prentf("\n");
//打印乘积
printf("乘积是:");
for(i = 1;i<n;i++){
for(j =1;j<n;j++){
printf("%d\t",arr[i][j]);
}
}
return 0;
}
这个代码你试一下,我没有编译,电脑系统出问题了。凭感觉写出来的,有些符号问题你看着改改
如果看不懂的话,你再把这个代码加上,应该会清晰一点
//上面数组的一个遍历
for(i = 0;i<n-1;i++){
for(j =0;j<n-1;j++){
printf("%d\t",arr[i][j]);
}
printf("\n");
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询