Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Помогите найти ошибку (http://forum.oszone.net/showthread.php?t=246272)

pashazt 05-11-2012 22:08 2019549

Помогите найти ошибку
 
Программа некорректно находит максимум среди сумм элементов диагоналей, паралельных главной диагонали матрицы. Помогите найти ошибку.
Код:

#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<locale.h>
#include<iostream>
int main()
{
    setlocale (LC_ALL, "Rus");
    int m,n,i,j,d,f,k,l,p;
   
    printf("Введите количество элементов в строке матрицы n = ");
    scanf("%d",&n);
   
    printf("Введите количество элементов в столбце матрицы m = ");
    scanf("%d",&m);

    int matrix[i][j];
   
    for(i=0;i<n;i++)
    {
        printf("Введите элементы %d строки ",i+1);
        for(j=0;j<m;j++)
        scanf("%d",&matrix[i][j]);
    }
               
                printf("\nМаксимум среди сум элементов диагоналей, паралельных главной диагонали матрицы=");
                k=matrix[1][m];
                for (l=1-m; l<=m-1; l++)
                {
                    p=0;
                    for (i=0; i<n; i++)
                    for (j=0; j<m; j++)
                    if (i-j==l)
                    p=p+matrix[i][j];
                    if (p>k)
                    k=p;
                    }
                    printf("%d",k);
                   
getch();
return 0;
}


ferget 05-11-2012 23:40 2019639

Код:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream>

using namespace std;
 
int main()
{   
  const int n = 3;
  int i,j,sum=0,v=0,maxsum=0; 
        int a[n][n],s[2*n];
        printf ("Kak vvodit' elementi?\n0 - random\n1 - s klaviaturi\n");
        scanf ("%i", &v);
        srand(time(0));
        switch (v)
        {
        case 0://random
                for (i=0; i<n; i++)
                        for (j=0; j<n; j++)
                                a[i][j] = rand()%20;
                break;
        case 1:// sklavi
                for (i=0; i<n; i++)
                        for (j=0; j<n; j++)
                        {
                                printf ("a[%i][%i]= ", i+1, j+1);
                                scanf ("%i", &a[i][j]);
                        }
        }
  for (i=0; i<n; i++)
        {
                for (j=0; j<n; j++)
                {
                        printf ("%i ", a[i][j]);
                }
                printf ("\n");
        }
  system("PAUSE");

 for (j=0;j<(2*n);j++) s[j]=0;
  for (i=0;i<n;i++)
  {
      for (j=0;j+i<n;j++)
      {
          s[j]+=a[i][i+j];
          s[n+j]+=a[i+j][i];
      }     
  }
  for (j=0;j<n;j++) printf("%d\n",s[j]);
  for (j=n+1;j<(2*n);j++) printf("%d\n",s[j]);
  maxsum=-1000;
  for (j=1;j<n;j++)
      if (maxsum<s[j])
          maxsum=s[j];
  cout<<"Max sum"<<endl;
  printf("%d\n",maxsum);
       
  system("PAUSE"); 
  return 0;
  }



Время: 01:55.

Время: 01:55.
© OSzone.net 2001-