#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]);
}
}
C++求助:随机生成二维数组,并求每列元素的平方和,请大家帮我看看输出结果为什么不对,怎么改正?
答案:4 悬赏:50
解决时间 2021-04-21 20:16
- 提问者网友:话酸浅沫
- 2021-04-21 03:18
最佳答案
- 二级知识专家网友:兮沫♡晨曦
- 2021-04-21 04:55
printf("%d\n",SumOfSquares[j]);
这里改成
printf("%.0lf\n",SumOfSquares[j]);
这里改成
printf("%.0lf\n",SumOfSquares[j]);
全部回答
- 1楼网友:一起来看看吧
- 2021-04-21 07:23
printf("%d\n",SumOfSquares[j]);double的输出不能用整形
- 2楼网友:统治我的世界
- 2021-04-21 07:07
#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楼网友:余生继续浪
- 2021-04-21 06:29
没看出来哪不对
你怎么知道结果不对的?
怎么个不对法啊?
某一列出了问题,比如第二列结果不对, 你再j= 1时,单步调试
2*5的数组,不行就一步一步调试
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯