[C] Wypełnianie przekątnej tablicy.

doberman434
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 10 cze 2013, o 18:30
Płeć: Mężczyzna
Lokalizacja: Wrocław

[C] Wypełnianie przekątnej tablicy.

Post 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ć
Ostatnio zmieniony 10 cze 2013, o 22:00 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Awatar użytkownika
lightinside
Użytkownik
Użytkownik
Posty: 796
Rejestracja: 25 lis 2011, o 22:25
Płeć: Kobieta
Lokalizacja: Poznań/Łódź
Podziękował: 111 razy
Pomógł: 29 razy

[C] Wypełnianie przekątnej tablicy.

Post 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

Kod: Zaznacz cały

int tab[9][9]
wyświetlasz tablicę wymnażasz i znów pokazujesz...

Wiesz jak wyświetlać i zapisywać w tablicach dwuwymiarowych? Wytłumaczyć Ci to?
doberman434
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 10 cze 2013, o 18:30
Płeć: Mężczyzna
Lokalizacja: Wrocław

[C] Wypełnianie przekątnej tablicy.

Post 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
Ostatnio zmieniony 10 cze 2013, o 22:00 przez Afish, łącznie zmieniany 1 raz.
Powód: Stosuj tagi code.
Awatar użytkownika
RyHoO16
Użytkownik
Użytkownik
Posty: 1822
Rejestracja: 22 paź 2006, o 20:38
Płeć: Mężczyzna
Lokalizacja: WLKP
Podziękował: 46 razy
Pomógł: 487 razy

[C] Wypełnianie przekątnej tablicy.

Post autor: RyHoO16 »

W pierwszy sprawdź coś takiego

Kod: Zaznacz cały

... 
if(i==j) tab[i][j]=zmienna;
else tab[i][j]=0;
doberman434
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 10 cze 2013, o 18:30
Płeć: Mężczyzna
Lokalizacja: Wrocław

[C] Wypełnianie przekątnej tablicy.

Post 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 ?
konrad509
Użytkownik
Użytkownik
Posty: 1841
Rejestracja: 5 mar 2012, o 14:08
Płeć: Mężczyzna
Lokalizacja: Polska :D
Podziękował: 6 razy
Pomógł: 323 razy

[C] Wypełnianie przekątnej tablicy.

Post 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:

Kod: Zaznacz cały

tab2[i][j]=tab[i][j]*n
gdzie n to ta podana przez użytkownika liczba.
doberman434
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 10 cze 2013, o 18:30
Płeć: Mężczyzna
Lokalizacja: Wrocław

[C] Wypełnianie przekątnej tablicy.

Post autor: doberman434 »

co do pierwszego nie wiem za bardzo które rzeczy mam poprawić ;D
jak dla mnie to powinno to działać ;p
konrad509
Użytkownik
Użytkownik
Posty: 1841
Rejestracja: 5 mar 2012, o 14:08
Płeć: Mężczyzna
Lokalizacja: Polska :D
Podziękował: 6 razy
Pomógł: 323 razy

[C] Wypełnianie przekątnej tablicy.

Post 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...
doberman434
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 10 cze 2013, o 18:30
Płeć: Mężczyzna
Lokalizacja: Wrocław

[C] Wypełnianie przekątnej tablicy.

Post 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 ;/
konrad509
Użytkownik
Użytkownik
Posty: 1841
Rejestracja: 5 mar 2012, o 14:08
Płeć: Mężczyzna
Lokalizacja: Polska :D
Podziękował: 6 razy
Pomógł: 323 razy

[C] Wypełnianie przekątnej tablicy.

Post autor: konrad509 »

Ad. 1
W pętlach for tylko ten fragment:

Kod: Zaznacz cały

if(i==j) tab[i][j]=k;
else tab[i][j]=0;
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.

Kod: Zaznacz cały

scanf("%2d",tab2[i][j]=tab[i][j]*n);
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ę
ODPOWIEDZ