• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Szukanie maksymalnej wartości w kolumnach i wierszach.

Object Storage Arubacloud
0 głosów
115 wizyt
pytanie zadane 28 listopada 2022 w C i C++ przez Zuzan Początkujący (390 p.)
zamknięte 28 listopada 2022 przez Zuzan

Witam. Mam pytanie do zadania opisanego poniżej. Nie bardzo wiem jak sobie poradzić z zapamiętaniem ilości wystąpień danej liczby, a następnie zapisanie jej w tablice. Napisałam program, który nie do końca działa poprawnie. Liczba wystąpień nie jest stała, zwiększa się ona o jeden z każdym kolejnym powtórzeniem liczby. Wiem że wynika to z tego, że do bieżącego elementu tablicy zapisuje, bieżąca wartość w(ilosc wystapien liczby). Nie wiem w jaki sposób mogłabym to zapisać. Bardzo prosiłabym o pomoc/ wskazówki.

Napisz program, który wczyta od użytkownika tablicę o wymiarze 15x15, wypełnioną wartościami z zakresu <0, 30), a następnie utworzy tablicę wynikową, w której wartości z tablicy wejściowej zostaną zastąpione liczbą ich wystąpień. W przypadku wprowadzenia przez użytkownika błędnych danych program powinien wyświetlić komunikat incorrect input i zakończyć działanie z kodem błędu 1, a w przypadku wprowadzenia liczby spoza zakresu komunikat value out of range i zwrócić wartość 2.

#include <stdio.h>

int main(void) {
  int t[15][15], w;
  printf("uzupelnij macierz \n");
  for(int i=0; i<15; i++)
  {
    for(int k=0; k<15; k++)
    {
      int l=scanf("%d",&t[i][k]);
      if(l!=1)
      {
        printf("incorrect input");
        return 1;
      }
      else if (t[i][k]<0 || t[i][k]>=30)
      {
        printf("value out of range\n");
        return 2;
      }
    }
  }
  int l=0;
  while(l<30)
    { w=0;
      for (int i=0; i<15; i++)
        {
          for(int p=0; p<15; p++)
            {
              if(t[i][p]==l)
              {
                w++;
                t[i][p]=w;
              }
            }
        }
      l++; 
     
    }
  for(int p=0; p<15; p++)
    {
      for(int j=0; j<15; j++)
        {
          printf("%5d", t[p][j]);
        }
      printf("\n\n");
    }
return 0;
}

 

komentarz zamknięcia: Źle zadane

1 odpowiedź

+2 głosów
odpowiedź 28 listopada 2022 przez adrian17 Ekspert (344,860 p.)

Tutaj iterujesz się do 5:

for(int w=0; w<5; w++)

A tutaj do 10:

for(int w=0; w<10; w++)

To drugie nie wygląda poprawnie :)

Podobne pytania

0 głosów
1 odpowiedź 328 wizyt
pytanie zadane 23 stycznia 2017 w C i C++ przez vega Użytkownik (510 p.)
0 głosów
2 odpowiedzi 313 wizyt
0 głosów
0 odpowiedzi 68 wizyt

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,962 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...