C 简单二维
我正在努力解决这个问题 然而,在我当前的代码中,我将此作为一个输出 目前这是我的代码C 简单二维,c,ansi,C,Ansi,我正在努力解决这个问题 然而,在我当前的代码中,我将此作为一个输出 目前这是我的代码 #include <stdio.h> #include <stdlib.h> #define r 3 #define c 5 int main(int argc, char *argv[]) { int i, j; float *a[r], sum; freopen("testdata2", "r", stdin); for(i = 0; i < r; i++) {
#include <stdio.h>
#include <stdlib.h>
#define r 3
#define c 5
int main(int argc, char *argv[])
{
int i, j;
float *a[r], sum;
freopen("testdata2", "r", stdin);
for(i = 0; i < r; i++)
{
float *row = (float*)malloc(sizeof(float)*c);
for(i = 0; i < c; i++)
{
scanf("%f", &row[i]);
}
a[i] = row;
}
printf("The average values for the three rows are: ");
for(i = 0; i < r; i++)
{
sum = 0;
for(j = 0; j < c; j++)
{
sum += a[i][j];
}
printf("%.2f", sum/c);
}
printf("\nThe average values for the three columns are: ");
for(i = 0; i < c; i++)
{
sum = 0;
for(j = 0; j < r; i++)
{
sum += a[i][j];
}
printf("%.2f", sum/r);
}
return 0;
}
#包括
#包括
#定义R3
#定义C5
int main(int argc,char*argv[])
{
int i,j;
浮点数*a[r],总和;
freopen(“testdata2”、“r”、stdin);
对于(i=0;i
您声明的原因不正确
float *a[r] /* r = 3 */
int i;
打电话
for(i = 0; i < r; i++) {
float *row = (float*)malloc(sizeof(float)*c);
for(i = 0; i < c; i++) { // just write for(int i =0; i < c ; i++) {
scanf("%f", &row[i]); // or use j here;
}
a[i] = row; // i = c /* 5 */ here
// a[4] and a[5] are not located
}
(i=0;i{
浮动*行=(浮动*)malloc(sizeof(浮动)*c);
对于(i=0;i
根据内存中的一些数据,最好的方法是得到错误的数据;
另一种方式是,您的程序将被访问冲突压碎,试图使用其他程序占用的内存
事情会是这样的
for(int i = 0; i < r; i++) {
float *row = (float*)malloc(sizeof(float)*c);
for(int j = 0; j < c; j++) {
scanf("%f", &row[j]);
}
a[i] = row;
}
for(int i=0;i
如果你认为你使用的是2D数组:你没有。指针不是数组,指针数组也不是2D数组。查看for(i=0;i
我无论如何都看不懂。修复缩进。