c++ 前辈帮我看看哪有问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 12:59:07
#include <stdio.h>
#define N 9
#define M 9
void outdate (int a[N][M],int n)
{
int i,j;
for(i=1;i<n;i++)
{
for(j=1;j<n;j++)
printf("%d",a[i][j]);
print("\n");
}

}
void setdate (int a[N][M],int n)
{
int i,j;
a[0][0]=1;
for(i=1;i<n;i++)
for(j=1;j<n;j++)
a[i][j]=a[i][i]*a[j][j];

}
main()
{
printf("A MULTIPLICATION TABLE");
int n=9, a[N][M];
setdate (a,n);
outdate (a,n);
}
你们说的改完之后还是有错误,能不能改完试下再发给我!!!!!!!!!!!!!!!!!!!
谢谢你们!!!!!!!!
main()
{
printf("A MULTIPLICATION TABLE");
int n=9, a[N][M];
setdate (a,n);
outdate (a,n);
其实最主要的是这错了 定义语句必须出现在最前边!我吧printf放到最前边了 所以老调试错误!

你究竟想做什么?把你这个程序的目的说清楚.
还有你数组的初值.我想你要编的这个程度应该没一点难度,自己作呀!

a[N][M] 没有初始值, 算发出全是很乱的数字。

1.a[N][M]需要初始化

2.void setdate (int a[N][M],int n)
修改为
void setdate (int (*a)[M],int n)

3.函数setdate没有任何实质的作用

1 循环里i,j应从0开始,否则a[0][x]和a[x][0]都没有初始化
2 outdate里,你想要输出一个数然后换行的效果吧,那就把两个printf放一个大括号里,或者直接写一个printf("%d\n",a[i][j]);
3 printf少写一个f date是日期的意思 数据室data