琛皓
2015-12-11 11:33
采纳率: 100%
浏览 1.5k

C语言二维数组问题 求解

图片

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • threenewbee 2015-12-11 11:44
    已采纳
     bool foo()
    {
    int a[100][100];
    int i,j;
    for(i=0;i<n;i++)
      {
      for(j=0;j<n;j++)
      {
      scanf("%d",a[i][j]);
      }
      }
        int sum = 0;
        int sum1 = 0;
        for (i = 0; i < n; i++) sum += a[i][0];
    for  (j = 0; j < n; j++)
    {
    sum1 = 0;
    for (i = 0; i < n; i++) sum1 += a[i][j];
    if (sum1 != sum) return false;
    sum1 = 0;
    for (i = 0; i < n; i++) sum1 += a[j][i];
    if (sum1 != sum) return false;
    }
    sum1 = 0;
    for (i = 0; i < n; i++) sum1 += a[i][i];
    if (sum1 != sum) return false;
    sum1 = 0;
    for (i = 0; i < n; i++) sum1 += a[i][n - i];
    if (sum1 != sum) return false;
    return true;
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2015-12-11 11:46
     主程序
    int n = 4;
    int main()
    {
        if (foo()) printf("yes"); else printf("no");
    }
    
    评论
    解决 无用
    打赏 举报
  • 钟眞龙 2015-12-11 15:52

    首先你的把这些数字输入到相应的二维数组中,然后
    分别通过观察(找公式)并计算两个对角线的值和每一行的值以及每一列的值,如果有一个不相等,那直接输出“非魔方”!break;
    否则
    相等,你可以输出二维数组的值就行!

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题