Skocz do zawartości
kiler1000

[C] Ograniczenie wyświetlenia zawartosci tabeli.

Rekomendowane odpowiedzi

Potrzebuje pomocy: Program ma utworzyć tabliczkę mnożenia z zakresu 0-1000. Wyświetlić tylko 10x10 z pominieciem reszty oraz wyznaczyć średnią wartość tablicy. Kod:

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int main(void)
{
int w,k;
float t[10][10];
printf("Tabliczka mnozenia\n");
printf("Podaj liczbe kolumn\n");
scanf("%d",&k);
printf("Podaj liczbe wierszy\n");
scanf("%d",&w);
for (k=1;k<=10;k++){
    for (w=1;w<=10;w++){
        t[k][w]=(k+1)*(w+1);
    }
}
printf("%c",t[k][w]);
fflush(stdin);
getchar();
return 0;
}

 

Póki co jest to mój kod, nie mam pojęcia jak ograniczyć wyświetlanie. Gdy kombinowałem z wielkością tablicy aby mogła pomieścić ilość danych do 1000 to wyrzucało mi że przekorczyłem wielkość tablicy. Kompilator którego uzywam to Microsoft Visual Studio C++ 2010 Express.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ta tablica ma mieć wielkość 1000x1000, czy wartości w niej mają nie przekraczać 1000? Chcesz wyświetlić konkretny fragment tej tablicy, czy tylko lewy górny róg? Średnia wartość tablicy dotyczy wyświetlanego fragmentu, czy całej tablicy?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ma maksymalnie mieć 1000x1000, ale wyświetlać zawsze ma się tylko 10x10 tj. lewy górny róg od 1-10. Średnia wartość z całej tablicy.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Nie znam się na C, ale do dwóch pierwszych zadań wystarczą pętle for i tablica o wielkości [W][H] <= 1000 oraz pętla for od 1 do 10.

Przyjmując, że szerokość tablicy to W, wysokość to H:

Średnia wartość tablicy jest sumą tablicy podzieloną przez jej wielkość. Suma pierwszego wiersza jest równa W(W+1)/2 (ciąg arytmetyczny). Drugi wiersz jest 2 razy większy, trzeci - 3x większy itd.

Z tego wynika, że suma tablicy jest wielokrotnością sumy pierwszego wiersza. Wielokrotność ta jest równa H(H+1)/2 (również ciąg arytmetyczny). Wynik wystarczy podzielić przez W*H.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Chodzi o to byś miał tam przesuwanie "viewa", da?

Wystarczy, że to przerobisz:

for (k=1;k<=10;k++){
    for (w=1;w<=10;w++){
        t[k][w]=(k+1)*(w+1);
    }
}

I zrobisz, że będzie dodawało d tego (k+1) i (w+1) pozycję widoku. :)

Dalej już wiesz? :P

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×