C++求助:随机生成二维数组,并求每列元素的平方和,请大家帮我看看输出结果为什么不对,怎么改正?

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>

void main()
{///生成二维随机数组
const int M=5;
const int N=2;
int num[M][N];
srand(time(NULL));

for (int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
{
num[i][j]=rand()%10;
printf("%d\t",num[i][j]);
}
printf("\n");
}
double SumOfSquares[N];
for (int j=0;j<N;j++)
{
SumOfSquares[j]=0;
for (int i=0;i<M;i++)
{
SumOfSquares[j]=SumOfSquares[j]+pow(num[i][j],2);
}
printf("%d\n",SumOfSquares[j]);
}
}

printf("%d\n",SumOfSquares[j]);
这里改成
printf("%.0lf\n",SumOfSquares[j]);
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-14
没看出来哪不对
你怎么知道结果不对的?
怎么个不对法啊?
某一列出了问题,比如第二列结果不对, 你再j= 1时,单步调试
2*5的数组,不行就一步一步调试
第2个回答  2011-08-14
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>

void main()
{///生成二维随机数组
const int M=5;
const int N=2;
int num[M][N];
srand(time(NULL));

for (int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
{
num[i][j]=rand()%10;
printf("%d\t",num[i][j]);
}
printf("\n");
}
double SumOfSquares[N];
for (int j=0;j<N;j++)
{
SumOfSquares[j]=0;
for (int i=0;i<M;i++)
{
SumOfSquares[j]=SumOfSquares[j]+pow(num[i][j],2.0);//没有pow(int,int)的重载!!!!
}
printf("%0lf\n",SumOfSquares[j]);
}
}
可以了,注意注释部分!!!!
第3个回答  2011-08-14
printf("%d\n",SumOfSquares[j]);double的输出不能用整形

C++求助:随机生成二维数组,并求每列元素的平方和,请大家帮我看看输出结...
你要是想修饰结果的话,可以用 %.0lf 进行输出

c++ 一个double二维数组用指针表示各个元素,输出结果不对,求大神指点下...
void pointer_array(double array[][5],int n){double (*p)[5] = array;int i,j;for(i = 0;i < n;i++){for(j=0;j < 5;j++){std::cout << *(*(p+i)+j) << " ";}cout << std::endl;}} 或者:void pointer_array(double array[][5],int n){double *p;int i...

C++二维数组求每列的和
cout<<"第"<<j+1<<"列的和为"<<b[j]<<endl;} }

输入一个二维数组,分别统计各行元素之和并输出统计的结果。
我是用C++写的,输入输出语句不一样,如果题意没理解错,其它的没问题

编写C++程序,求二维数组中的全部元素之和
include<stdio.h> void main { int m,n;int a[10][10];printf("请输入二维数组的行数和列数");scanf("%d%d",&m,&n);for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ scanf("%d",&a[i][j]);sum+=a[i][j];} } printf("全部元素和为%d",sum);} ...

C++难题 二维数组求和
if(i!=1&&j!=1){\/\/第一列和第一行除外 \/\/每个元素等于其左边和上边的元素之和 a[i][j]=a[i-1][j]+a[i][j-1];} } } for(int i=1;i<=n;i++){\/\/求和 for(int j=1;j<=m;j++){ sum+=a[i][j];printf("%d ",a[i][j]);\/\/打印 (测评时可以注释掉)} puts...

用c++写”随机生成一个二维数组,求每行最大值并存到一个一维数组...
void initarr(int * arr, unsigned int row, unsigned col){ int rval; unsigned int rrow, rcol; int i, j; assert(arr && row>0 && col>0); memset(arr, row * col * sizeof(int), 0); randomize(); for ( i = 0; i < row; i ++) { for (j = 0; ...

...要求调用Sum函数计算二维数组每行元素之和,并将和保存在每行的第一...
void Sum(int a[][4], int row){ \/\/补充Sum函数体,实现题目要求 for (int i = 0; i < row; ++i) { int result = 0;for (int j = 0; j < 4; ++j) { result += a[i][j];} a[i][0] = result;} } 请采纳,谢谢!

如何用c++一个二维数组输入一组随机数 且不重复
int main(void){ int a[7][7],t[50],i,j,k,x; srand((unsigned)time(NULL)); for(i=0;i<50;t[i]=i++); for(x=50,i=0;i<7;i++) for(j=0;j<7;j++){ a[i][j]=t[k=rand()%x]; t[k]^=t[...

C++通过动态内存分配来来生成一个动态的二维数组,要求行列相乘为偶数...
*q;srand((unsigned)time(NULL));m=rand()%10+1;while(m*(n=rand()%10+1)&1);\/\/保证m*n是偶数q=(int *)malloc(sizeof(int)*m*n);if(q==NULL || (p=(int **)malloc(sizeof(int *)*m))==NULL){printf("Application memory failure...\\n");return 0;}for(i=0;...

相似回答