[C] Indeks kolumny macierzy

aGabi94
Użytkownik
Użytkownik
Posty: 230
Rejestracja: 5 mar 2014, o 18:52
Płeć: Kobieta
Lokalizacja: Kraków
Podziękował: 60 razy

[C] Indeks kolumny macierzy

Post autor: aGabi94 »

Program ma za zadanie znaleźć numer kolumny macierzy, w której znajduje się moduł największego elementu.Program się kompiluje,niestety pokazuje zły numer kolumny.Proszę o pomoc w znalezieniu błędu. Z góry dziękuję.

Kod: Zaznacz cały

#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>

int A[11][11];
int n,k;

main()
{ void Wczytajmacierz();
  int Macierzmax(int A[11][11],int n,int k);
   
   Wczytajmacierz();
  
   printf("Najwiekszy element znajduje sie w kolumnie o indeksie %d",Macierzmax(A,n,k));
   getch();
}   
void Wczytajmacierz()
{FILE *plik1;
plik1=fopen("macierz.txt","r");
fscanf(plik1,"%d%d",&n,&k);
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=k;j++)
fscanf(plik1,"%d",&A[i][j]);

fclose(plik1);
}
int Macierzmax(int A[11][11],int n,int k)
{int i,j;
int m=abs(A[1][1]);
int s=1;
for(i=1;i<=n;i++)
{for(j=1;j<=k;j++)
if(abs(A[i][j])>m)
m=abs(A[i][j]);
s=j;

}

return s;
}
kalwi
Użytkownik
Użytkownik
Posty: 1931
Rejestracja: 29 maja 2009, o 11:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 145 razy
Pomógł: 320 razy

[C] Indeks kolumny macierzy

Post autor: kalwi »

\(\displaystyle{ n,k}\) to są wymiary macierzy? Zdaje się, że 2 pierwsze kolumny pierwszego wiersza zawierają informację o rozmiarze macierzy, skoro tak to...

1.

Kod: Zaznacz cały

#include<conio.h>
Tego nie używamy

2.

Kod: Zaznacz cały

int A[11][11];
Skoro \(\displaystyle{ n,k}\) to są rozmiary macierzy, to czemu tworzysz tablicę o wymiarach 11x11? Poczytaj o dynamic arrays.

3.

Kod: Zaznacz cały

main()
Piszemy

Kod: Zaznacz cały

int main()
4.

Kod: Zaznacz cały

{ void Wczytajmacierz();
  int Macierzmax(int A[11][11],int n,int k);
Deklaracje funkcji są pod #includami (w krótkich programach), a nie w mainie.

5. Funkcja wczytajmacierz():

Kod: Zaznacz cały

for(i=1;i<=n;i++)
for(j=1;j<=k;j++)
ZAWSZE powinno się zaczynać iterację od 0.

6. Funkcja macierzmax():

Kod: Zaznacz cały

if(abs(A[i][j])>m)
m=abs(A[i][j]);
s=j;
Tu brakuje 2 klamerek, stąd zapewne zły wynik.
aGabi94
Użytkownik
Użytkownik
Posty: 230
Rejestracja: 5 mar 2014, o 18:52
Płeć: Kobieta
Lokalizacja: Kraków
Podziękował: 60 razy

[C] Indeks kolumny macierzy

Post autor: aGabi94 »

Dziękuję bardzo.
ODPOWIEDZ