user-0 提问: 刚学c语言不久，求大佬指教

回复:
user: user-0
content: 引用 5 楼 user-1的回复:[quote=引用 4 楼 一方通行Accelerator 的回复:] [quote=引用 2 楼 user-1的回复:]4门功课，数组下标0-3，不能循环到5 定义的a[3][4]是一个3行4列的矩形，a[i][4]=sum/4;这个地方不是定义了第五列的么？不能直接循环到5，变成3*5的矩阵吗？[/quote] 你都说了是3行4列的，那第3行第5列是什么数字呢[/quote] a[i][4]这个不算么？

user: user-1
content: 引用 4 楼 一方通行Accelerator 的回复:[quote=引用 2 楼 user-1的回复:]4门功课，数组下标0-3，不能循环到5 定义的a[3][4]是一个3行4列的矩形，a[i][4]=sum/4;这个地方不是定义了第五列的么？不能直接循环到5，变成3*5的矩阵吗？[/quote] 你都说了是3行4列的，那第3行第5列是什么数字呢

user: user-0
content: 引用 2 楼 user-1的回复:4门功课，数组下标0-3，不能循环到5 定义的a[3][4]是一个3行4列的矩形，a[i][4]=sum/4;这个地方不是定义了第五列的么？不能直接循环到5，变成3*5的矩阵吗？

user: user-0
content: 引用 2 楼 user-1 的回复:4门功课，数组下标0-3，不能循环到5  定义的a[3][4]是一个3行4列的矩形，a[i][4]=sum/4;这个地方不是定义了第五列的么？不能直接循环到5，变成3*5的矩阵吗？

user: user-1
content: 4门功课，数组下标0-3，不能循环到5

user: user-1
content: #include<stdio.h> #define N 3 //int fac(float a[N][5]) //{ //	float sum; //	int i, j; //	for (i = 0; i < N; i++) //	{ //		sum = 0.0; //		for (j = 0; j < 4; j++) //		{ //			sum = sum + a[i][j]; //		} //		a[i][4] = sum / 4; //	} //	return 0; //} int main() { 	float a[N][4] = { 76, 89, 87, 80, 80, 88, 67, 77, 66, 78, 80, 90 }; 	float x = 0; 	float sum = 0; 	int i, j; 	for (i = 0; i < N; i++) 	{ 		x = 0;  		sum = 0; 		for (j = 0; j < 4; j++) 		{ 			printf("%.1f\t", a[i][j]); 			sum += a[i][j]; 		} 			 		x = sum / 4; 		printf("平均成绩%.3f\n", x); 	} 	return 0; }

user: user-0
content: 引用 11 楼 user-1的回复:[quote=引用 9 楼 一方通行Accelerator 的回复:] [quote=引用 8 楼 user-1的回复:][quote=引用 7 楼 一方通行Accelerator 的回复:] [quote=引用 5 楼 user-1的回复:][quote=引用 4 楼 一方通行Accelerator 的回复:] [quote=引用 2 楼 user-1的回复:]4门功课，数组下标0-3，不能循环到5 定义的a[3][4]是一个3行4列的矩形，a[i][4]=sum/4;这个地方不是定义了第五列的么？不能直接循环到5，变成3*5的矩阵吗？[/quote] 你都说了是3行4列的，那第3行第5列是什么数字呢[/quote] 就像扩大这个矩阵一样，给它加上第五列，能不能这样呢？[/quote] 那你定义的时候就大一点啊，明明没有的东西你去取，那就越界了啊。。[/quote] 是不是应该把那a[3][4]改成a[3][5],然后后面定义怎么改呢？你写的程序好像是3*4的矩阵，然后每行最后输出平均数，能不能一开始就设计成3*5的矩阵?虽然我觉得好像这样更麻烦，但是我很好奇可不可以这样，谢谢你了[/quote]int main() { 	float a[N][5] = { { 76, 89, 87, 80,0 }, { 80, 88, 67, 77,0 }, { 66, 78, 80, 90,0 } }; 	float x = 0; 	float sum = 0; 	int i, j; 	for (i = 0; i < N; i++) 	{ 		x = 0; 		sum = 0; 		for (j = 0; j < 5; j++) 		{ 			printf("%.1f\t", a[i][j]); 			sum += a[i][j]; 		}  		//x = sum / 4; 		x = sum / 5;  		printf("平均成绩%.3f\n", x); 	} 	return 0; } 这样？？[/quote] 那第五列显示的是0……这样不对吧？算了，我觉得就之前那个就很好了，非常感谢大佬的耐心指导

user: user-1
content: 引用 9 楼 一方通行Accelerator 的回复:[quote=引用 8 楼 user-1的回复:][quote=引用 7 楼 一方通行Accelerator 的回复:] [quote=引用 5 楼 user-1的回复:][quote=引用 4 楼 一方通行Accelerator 的回复:] [quote=引用 2 楼 user-1的回复:]4门功课，数组下标0-3，不能循环到5 定义的a[3][4]是一个3行4列的矩形，a[i][4]=sum/4;这个地方不是定义了第五列的么？不能直接循环到5，变成3*5的矩阵吗？[/quote] 你都说了是3行4列的，那第3行第5列是什么数字呢[/quote] 就像扩大这个矩阵一样，给它加上第五列，能不能这样呢？[/quote] 那你定义的时候就大一点啊，明明没有的东西你去取，那就越界了啊。。[/quote] 是不是应该把那a[3][4]改成a[3][5],然后后面定义怎么改呢？你写的程序好像是3*4的矩阵，然后每行最后输出平均数，能不能一开始就设计成3*5的矩阵?虽然我觉得好像这样更麻烦，但是我很好奇可不可以这样，谢谢你了[/quote]int main() { 	float a[N][5] = { { 76, 89, 87, 80,0 }, { 80, 88, 67, 77,0 }, { 66, 78, 80, 90,0 } }; 	float x = 0; 	float sum = 0; 	int i, j; 	for (i = 0; i < N; i++) 	{ 		x = 0; 		sum = 0; 		for (j = 0; j < 5; j++) 		{ 			printf("%.1f\t", a[i][j]); 			sum += a[i][j]; 		}  		//x = sum / 4; 		x = sum / 5;  		printf("平均成绩%.3f\n", x); 	} 	return 0; } 这样？？

user: user-0
content: 引用 8 楼 user-1的回复:[quote=引用 7 楼 一方通行Accelerator 的回复:] [quote=引用 5 楼 user-1的回复:][quote=引用 4 楼 一方通行Accelerator 的回复:] [quote=引用 2 楼 user-1的回复:]4门功课，数组下标0-3，不能循环到5 定义的a[3][4]是一个3行4列的矩形，a[i][4]=sum/4;这个地方不是定义了第五列的么？不能直接循环到5，变成3*5的矩阵吗？[/quote] 你都说了是3行4列的，那第3行第5列是什么数字呢[/quote] 就像扩大这个矩阵一样，给它加上第五列，能不能这样呢？[/quote] 那你定义的时候就大一点啊，明明没有的东西你去取，那就越界了啊。。[/quote] 是不是应该把那a[3][4]改成a[3][5],然后后面定义怎么改呢？你写的程序好像是3*4的矩阵，然后每行最后输出平均数，能不能一开始就设计成3*5的矩阵?虽然我觉得好像这样更麻烦，但是我很好奇可不可以这样，谢谢你了

user: user-1
content: 引用 7 楼 一方通行Accelerator 的回复:[quote=引用 5 楼 user-1的回复:][quote=引用 4 楼 一方通行Accelerator 的回复:] [quote=引用 2 楼 user-1的回复:]4门功课，数组下标0-3，不能循环到5 定义的a[3][4]是一个3行4列的矩形，a[i][4]=sum/4;这个地方不是定义了第五列的么？不能直接循环到5，变成3*5的矩阵吗？[/quote] 你都说了是3行4列的，那第3行第5列是什么数字呢[/quote] 就像扩大这个矩阵一样，给它加上第五列，能不能这样呢？[/quote] 那你定义的时候就大一点啊，明明没有的东西你去取，那就越界了啊。。

user: user-0
content: 引用 5 楼 user-1的回复:[quote=引用 4 楼 一方通行Accelerator 的回复:] [quote=引用 2 楼 user-1的回复:]4门功课，数组下标0-3，不能循环到5 定义的a[3][4]是一个3行4列的矩形，a[i][4]=sum/4;这个地方不是定义了第五列的么？不能直接循环到5，变成3*5的矩阵吗？[/quote] 你都说了是3行4列的，那第3行第5列是什么数字呢[/quote] 就像扩大这个矩阵一样，给它加上第五列，能不能这样呢？