C语言二维数组赋值问题
题目如上,我写的程序如下:#include<stdio.h>voidmain(){inti,j,sum,a[5][3];doubleb[3],aver,sun=0;a[5...
题目如上,我写的程序如下:
#include <stdio.h>
void main()
{
int i, j, sum, a[5][3];
double b[3], aver, sun=0;
a[5][3] = {{80, 75, 92}, {61, 65, 71}, {59, 63, 70}, {85, 87, 90}, {76, 77, 85}};
for(i=0; i<3; i++)
{
sum = 0;
for(j=0; j<5; j++)
{
sum = sum+a[j][i];
}
b[i] = sum/5.0;
}
printf("各科平均成绩如下:\n");
for(i=0; i<3; i++)
{
printf("%8.1lf", b[i]);
}
printf("\n");
for(i=0; i<3; i++)
{
sun = sun+b[i];
}
aver = sun/3;
printf("总平均成绩:%8.1lf\n", aver);
}
提示的问题如下:
而我改为将a[5][3]在声明时初始化就正常运行,这是什么问题
#include <stdio.h>
void main()
{
int i, j, sum;
double b[3], aver, sun=0;
int a[5][3] = {{80, 75, 92}, {61, 65, 71}, {59, 63, 70}, {85, 87, 90}, {76, 77, 85}};
for(i=0; i<3; i++)
{
sum = 0;
for(j=0; j<5; j++)
{
sum = sum+a[j][i];
}
b[i] = sum/5.0;
}
printf("各科平均成绩如下:\n");
for(i=0; i<3; i++)
{
printf("%8.1lf", b[i]);
}
printf("\n");
for(i=0; i<3; i++)
{
sun = sun+b[i];
}
aver = sun/3;
printf("总平均成绩:%8.1lf\n", aver);
} 展开
#include <stdio.h>
void main()
{
int i, j, sum, a[5][3];
double b[3], aver, sun=0;
a[5][3] = {{80, 75, 92}, {61, 65, 71}, {59, 63, 70}, {85, 87, 90}, {76, 77, 85}};
for(i=0; i<3; i++)
{
sum = 0;
for(j=0; j<5; j++)
{
sum = sum+a[j][i];
}
b[i] = sum/5.0;
}
printf("各科平均成绩如下:\n");
for(i=0; i<3; i++)
{
printf("%8.1lf", b[i]);
}
printf("\n");
for(i=0; i<3; i++)
{
sun = sun+b[i];
}
aver = sun/3;
printf("总平均成绩:%8.1lf\n", aver);
}
提示的问题如下:
而我改为将a[5][3]在声明时初始化就正常运行,这是什么问题
#include <stdio.h>
void main()
{
int i, j, sum;
double b[3], aver, sun=0;
int a[5][3] = {{80, 75, 92}, {61, 65, 71}, {59, 63, 70}, {85, 87, 90}, {76, 77, 85}};
for(i=0; i<3; i++)
{
sum = 0;
for(j=0; j<5; j++)
{
sum = sum+a[j][i];
}
b[i] = sum/5.0;
}
printf("各科平均成绩如下:\n");
for(i=0; i<3; i++)
{
printf("%8.1lf", b[i]);
}
printf("\n");
for(i=0; i<3; i++)
{
sun = sun+b[i];
}
aver = sun/3;
printf("总平均成绩:%8.1lf\n", aver);
} 展开
4个回答
展开全部
数组不能被直接这样赋值的,初始化可以,赋值只能通过指针或者单个元素赋值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,除非在变量声明时,a[5][3]是指明数组名为a,大小为5x3,此时可以初始化,给数组整体赋值;
在程序中,单独使用a[5][3]是指数组a中一元素,但因数组a大小为5x3,所以下标最大元素为a[4][2],因此编译报错;
希望上述对您有帮助。
在程序中,单独使用a[5][3]是指数组a中一元素,但因数组a大小为5x3,所以下标最大元素为a[4][2],因此编译报错;
希望上述对您有帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a[5][3]= 其实就是在给最后一个赋值
并不是数组的初始地址
并不是数组的初始地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询