c语言求一个3乘5的矩阵各列元素的最大值,将求出的最大值全部输出

#include<stdio.h>void main(){ int a[3][5],s[3],i,j,k;for(i=0;i<3;i++) for(j=0;j<5;j++) scanf("%d",*(a+i)+j);for(i=0;i<3;i++){ *(s+i)= *(*(a+j));for(j=1;j<5;j++) if(*(s+i) < *(*(a+i)+j)) *(s+i)= *(*(a+i)+j); }for(i=0;i<3;i++){ printf("Line=%d Max=%d",i,s[i] );printf("\n"); }} 哪里不对呢?可以运行,但结果是

想请教大神怎么改,而且要求像我那样用到指针的

可以参考下面的修改方法:

把第二个for(i=0;i<3;i++)循环里的

*(s+i)=*(*(a+j));换成*(s+i)=*(*(a+i));

即:

for(i=0;i<3;i++)
{ *(s+i)=*(*(a+i));

扩展资料:

for循环

1、语句最简形式为:

for( ; ; )

2、一般形式为:

for(单次表达式;条件表达式;末尾循环体)

{

中间循环体;

}

其中,表示式皆可以省略,但分号不可省略,因为“;”可以代表一个空语句,省略了之后语句减少,即为语句格式发生变化,则编译器不能识别而无法进行编译。 [1] 

for循环小括号里第一个“;”号前为一个为不参与循环的单次表达式,其可作为某一变量的初始化赋值语句, 用来给循环控制变量赋初值。

出参考资料来源:百度百科-for循环

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-07-13

把第二个for(i=0;i<3;i++)循环里的

*(s+i)= *(*(a+j));

换成

*(s + i) = *(*(a + i));

本回答被提问者和网友采纳
相似回答