请教一下我这个程序哪里错了,运行后是0.0000
L 资深达人 2017-02-13 20:18:34
1192 1 0

#include <stdio.h>

#include <stdlib.h>

#define  N  5

double fun ( int w[][N] )

{int i,j;double av=0.0,s;s=av;

for(i=0;i<N;i++)

{

if(i==0||i==N-1){

for(j=0;j<N;j++)

av=av+w[i][j]/(N-1)/(N-1);

}

else{

if(j==0||j==N-1)

av=av+w[i][j]/(N-1)/(N-1);

}

}

return s;



问题来自: 编程题真题

共 1 个回答

    qqq 资深元老 助教 3072天前

    老实说你的逻辑问题很大。

    第一,if和else里的av值是不会共存的,也就不可能实现两者相加的效果。

    第二,你的外层for循环只进行i的循环,而else中的内存for循环又不循环j的值。。怎么可能对呢。。

    你的思路太混乱了,仔细看看我给的代码吧,应该比你的好懂很多。

    double fun (int w[][N])
    {
    int i,j,k=0;
    double av=0.0;
    for(i=0;i<N;i++) 
    for(j=0;j<N;j++)
    if(i==0||i==N-1||j==0||j==N-1) 
    { av=av+w[i][j];
    k++;
    }
    return av/k; 
    }


您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题