Strona 1 z 1
[C] Wypełnianie przekątnej tablicy.
: 10 cze 2013, o 18:35
autor: doberman434
Zad. 1 Napisz program, który do tablicy dwuwymiarowej na jedną z dwóch przekątnych wpisze znak
podany przez użytkownika a pozostałe elementy tablicy wypełni 0 i pokaże tablicę.
Zad. 2 Napisz program, który wypełni tablicę dwuwymiarową o rozmiarze 9 na 9 liczbą podaną przez
użytkownika, pokaże tablicę. Poprosi użytkownika o podanie liczby przez którą wymnoży wszystkie
elementy tablicy i pokaże przetworzoną tablicę na ekranie..
Mógłby ktoś mi pomóc w tych zadaniach ?? Są to zadania z Programowania które muszę oddać do czwartku jest ich 6 te dwa są ostatnie i nie potrafię ich zrobić
[C] Wypełnianie przekątnej tablicy.
: 10 cze 2013, o 18:54
autor: lightinside
Z czym masz dokładnie problem? Piszesz program deklarujesz tablicę w zależności od zaawansowania albo dynamiczna albo mniej elegancka poprostu wielka aby się zmieściło to co użytkownik napisze.
Dalej wprowadzasz jakieś zmienne pobierasz dane od użytkownika i zapisujesz w tablicy w odpowiednim miejscu używając pętli , następnie korzystając z pętli piszesz aby wypełniało odpowiednie zerami, no i odczytujesz całą tabelę.
Z którym pod punktem masz problem?
2 no to podajesz np
wyświetlasz tablicę wymnażasz i znów pokazujesz...
Wiesz jak wyświetlać i zapisywać w tablicach dwuwymiarowych? Wytłumaczyć Ci to?
[C] Wypełnianie przekątnej tablicy.
: 10 cze 2013, o 19:30
autor: doberman434
Wiem jak wyświetlać i zapisywać, mam problem z tym żeby on wpisał ten znak po przekątnej i wypełnił to zerami omijając tą przekątną
-- 10 cze 2013, o 19:41 --
Kod: Zaznacz cały
#include<stdio.h>
main()
{
char tab[9][9];
int i,j;
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
printf("podaj znak ktory ma byc wpisany do tablicy
",i,j);
scanf("%2c",&tab[i][j]);
}
}
for(i=0;i<9;i++)
{
printf("
");
for(j=0;j<9;j++)
{
printf("%2c",tab[i][j]);
}
}
}
Z drugiego zadania wiem że tak mam zrobić tablice 9x9 i wyświetlić ja ale jak pomnożyć te elementy i wyświetlić to nie mam pojęcia
[C] Wypełnianie przekątnej tablicy.
: 11 cze 2013, o 01:53
autor: RyHoO16
W pierwszy sprawdź coś takiego
Kod: Zaznacz cały
...
if(i==j) tab[i][j]=zmienna;
else tab[i][j]=0;
[C] Wypełnianie przekątnej tablicy.
: 11 cze 2013, o 19:05
autor: doberman434
Kod: Zaznacz cały
#include<stdio.h>
main()
{
int tab[4][4];
int i,j,k;
printf("podaj znak który ma być w przekątnej
");
scanf("%2d",&k);
{
if(i==j) tab[i][j]=k;
else tab[i][j]=0;
}
for(i=0;i<4;i++)
{
printf("
");
for(j=0;j<4;j++)
{
printf("%2d",tab[i][j]);
}
}
}
To ma być coś takiego ?
[C] Wypełnianie przekątnej tablicy.
: 11 cze 2013, o 19:40
autor: konrad509
Ogólnie to coś w ten deseń. Trzeba tylko poprawić parę rzeczy, żeby ten program faktycznie działał
Co do drugiego zadania to trzeba chyba zadeklarować drugą tablicę i do niej zapisywać wymnożone wartości z pierwszej. Czyli sam fragment z mnożeniem wyglądałby tak:
gdzie n to ta podana przez użytkownika liczba.
[C] Wypełnianie przekątnej tablicy.
: 11 cze 2013, o 22:35
autor: doberman434
co do pierwszego nie wiem za bardzo które rzeczy mam poprawić ;D
jak dla mnie to powinno to działać ;p
[C] Wypełnianie przekątnej tablicy.
: 11 cze 2013, o 23:09
autor: konrad509
Ale nie działa.
Nie masz żadnego środowiska programistycznego?-- 11 cze 2013, o 23:38 --Przede wszystkim ten fragment, który podał Ci RyHoO16 powinien być w for-ach tak samo jak printf...
[C] Wypełnianie przekątnej tablicy.
: 12 cze 2013, o 19:58
autor: doberman434
Kod: Zaznacz cały
#include<stdio.h>
main()
{
int tab[4][4];
int i,j,k;
int z,x,y;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
printf("wprowadz znaki do przekatnej
");
scanf("%2d",&k);
{
if(i==j) tab[i][j]=k;
else tab[i][j]=0;
}
}
}
for(i=0;i<4;i++)
{
printf("
");
for(j=0;j<4;j++)
{
printf("%3d",tab[i][j]);
}
}
}
z tym 1 tyle mi się udało osiągnąć, tylko teraz jak zrobić żebym wpisał tylko raz np "1" i tablica by wypełniła po przekątnej tą 1 a reszte 0 bo teraz to musze wpisac 1 tak jakbym całą tablice wypełniał.
Z tym drugim jakbym wiedział jak zapisac zmienne do drugiej tablicy było by dobrze :d-- 12 cze 2013, o 20:07 --
Kod: Zaznacz cały
#include<stdio.h>
main()
{
int tab[9][9];
int tab2[9][9];
int i,j,n;
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
printf("podaj znak ktory ma byc wpisany do tablicy
",i,j);
scanf("%2d",&tab[i][j]);
}
}
for(i=0;i<9;i++)
{
printf("
");
for(j=0;j<9;j++)
{
printf("%2d",tab[i][j]);
}
}
printf("podaj przez co ma byc pomnozona tablica
");
scanf("%2d",&n);
for(i=0;i<9;i++)
{
scanf("%2d",tab2[i][j]=tab[i][j]*n);
{
for (j=0;j<9;j++)
scanf("%2d",tab2[i][j]=tab[i][j]*n);
}
}
for(i=0;i<9;i++)
{
printf("
");
for(j=0;j<9;j++)
{
printf("%2c",tab2[i][j]);
}
}
}
z drugim zrobiłem tak i podczas gdy chce zacząć mnożyć program się wyłącza
nie wiem dlaczego ;/
[C] Wypełnianie przekątnej tablicy.
: 12 cze 2013, o 20:16
autor: konrad509
Ad. 1
W pętlach for tylko ten fragment:
Zapytanie użytkownika o wprowadzenie liczby przed pętlami. To samo w drugim zadaniu.-- 12 cze 2013, o 20:40 --
Kod: Zaznacz cały
printf("podaj znak ktory ma byc wpisany do tablicy
",i,j);
Po co to i,j? Przecież tu nic nie wyświetlasz, poza samym tekstem z prośbą o podanie liczby.
Przypisanie jako argument funkcji
Ogólny algorytm tego programu wygląda tak:
- program prosi o podanie liczby jaką należy wypełnić tablicę
- po wprowadzeniu program wyświetla tablicę wypełnioną tą liczbą
- program prosi o podanie liczby przez jaką należy wszystkie elementy tablicy wymnożyć
- po wprowadzeniu pogram wyświetla wymnożoną tablicę