Skocz do zawartości
View in the app

A better way to browse. Learn more.

Max3D.pl

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Napisano

Witam,

mam mały problem z ponizszym programem, elementy macierzy mają być wprowadzane poprzez najechanie kursorem i wcisniecie Enter.. wszystko niby ladnie pięknie ale nie przekazuje tak wpisanej tablicy do dalszych obliczen. I nie wiem jak zrobic zapis/odczyt wynikowej macierzy do pliku. Prosze o pomoc

 

Oto program:

#include

#include

#include

#include

 

void wprow1 (int a[10][10],int w1,int k1);

void wprow2 (int b[10][10],int w2,int k2);

void dodaj (int a[10][10],int b[10][10],int w1,int k1,int w2,int k2);

void pomnoz (int a[10][10],int b[10][10],int w1,int k1,int w2,int k2);

void transpoz (int a[10][10],int w1,int k1);

 

 

 

main()

{

int w1,w2,k1,k2;

int z;

int a[10][10];

int b[10][10];

int q=1;

 

do

{

 

clrscr();

printf ("\t\t\t[ MENU ]");

 

printf ("\n\nWybierz:\n\n");

printf ("[F1]\tWpisanie pierwszej macierzy.\n\n"

"[F2]\tWpisanie drugiej macierzy.\n\n"

"[F3]\tDodawanie macierzy.\n\n"

"[F4]\tMnozenie tablicy przez liczbe.\n\n"

"[F5]\tTransponowanie 1 macierzy.\n\n"

"[END]\tWyjscie z programu.\n\n");

 

 

while(kbhit())

getch();

if (!getch())

switch(getch())

{

case 59:

clrscr();

printf("Wpisanie pierwszej macierzy.");

printf("\n\nilosc wierszy:\n");

scanf("%d",&w1);

printf("\nilosc kolumn:\n");

scanf("%d",&k1);

wprow1 (a,w1,k1);

getch();

break;

 

 

case 60:

clrscr();

printf("Wpisanie drugiej macierzy.");

printf("\n\n\nilosc wierszy\n");

scanf("%d",&w2);

printf("\nilosc kolumn\n");

scanf("%d",&k2);

wprow2 (b,w2,k2);

getch();

break;

 

 

case 61:

clrscr();

dodaj (a,b,w1,k1,w2,k2);

getch();

break;

 

 

case 62:

clrscr();

pomnoz (a,b,w1,k1,w2,k2);

getch();

break;

 

 

case 63:

clrscr();

transpoz(a,w1,k1);

getch();

break;

 

 

case 79:

q=0;

break;

}

 

}

while (q);

 

 

 

return 0;

}

 

 

//-----------------------------------------------------------------------

 

 

void wprow1 (int a[10][10], int w1, int k1)

{

 

 

 

int i,j,e,z,x,y;

printf("\n\n");

 

for(i=0;i

{

for(j=0;j

{

a[j]=0;

}

 

}

//Wyswietlenie

clrscr();

 

for(i=0;i

{

 

for(j=0;j

{

x=2+j*8;

y=2+i*2;

 

gotoxy(x,y);

cprintf("%d",a[j]);

 

 

}

 

}

 

 

 

 

 

 

 

//strzalki

do

{

while(kbhit())

getch();

if (!(z=getch()))

switch(z=getch())

{

case 72: // do gory

if(y

y=y-2;

gotoxy(x,y);

break;

 

case 75: // w lewo

x=x-8;

gotoxy(x,y);

break;

 

case 77: // w prawo

if(x

x=x+8;

gotoxy(x,y);

 

break;

 

case 80: // w dol

y=y+2;

gotoxy(x,y);

break;

 

case 79:

e=0;

break;

}

 

else

if(z==13)

{

cscanf("%i",a[j]);

}

 

}

while(e);

 

}

 

 

//-----------------------------------------------------------------------

 

void wprow2 (int b[10][10], int w2, int k2)

{

 

 

 

 

int i,j;

printf("\n\n");

for(i=1;i

{

for(j=1;j

{

printf("\nb[%i,%i",i,j);

printf("]=");

scanf("%i",&b[j]);

 

}

 

}

//Wyswietlenie

printf("\n\n");

for(i=1;i

{

for(j=1;j

{

 

printf("\t%d\t",b[j]);

 

}

printf("\n\n");

}

 

 

}

 

 

//-----------------------------------------------------------------------

 

void dodaj (int a[10][10],int b[10][10],int w1,int k1,int w2,int k2)

 

{

 

int i,j;

int q;

int c[10][10];

 

 

if(w1==w2 && k1==k2)

{

 

printf("\n\nSuma macierzy jest:\n\n");

 

for ( i=1; i

{

for(j=1; j

{

c[j]=a[j]+b[j];

printf("\t%d\t",c[j]);

 

}

printf("\n");

}

 

}

else printf("Dodawanie niemozliwe\n");

}

//-----------------------------------------------------------------------

void pomnoz(int a[10][10], int b[10][10], int w1,int k1, int w2, int k2)

{

int q;

int i,j;

 

 

printf("\nPrzez ile mam pomnozyc macierze?\n");

scanf("%d",&q);

 

 

 

 

printf("\nMacierz 1 pomnozona przez %d\n\n",q);

for(i=1;i

{

for(j=1;j

{

 

printf("\t%d\t",a[j]*q);

 

}

printf("\n");

 

}

 

printf("\nMacierz 2 pomnozona przez %d\n\n",q);

for(i=1;i

{

for(j=1;j

{

 

printf("\t%d\t",b[j]*q);

 

}

printf("\n");

 

}

}

 

//-----------------------------------------------------------------------

 

void transpoz (int a[10][10],int w1,int k1)

 

{

int c[10][10];

int i,j;

 

for(i=1;i

{

for(j=1;j

{

 

c[j]=a[j];

}

}

printf("\n\nTablice po transpozycji\n\n");

for(i=1;i

{

for(j=1;j

{

 

 

printf("\t%d\t",c[j]);

}printf("\n");

 

 

}

}

  • Odpowiedzi 2
  • Wyświetleń 2,3k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

Chodzi mi dokladnie o ta czesc:

 

void wprow1 (int a[10][10], int w1, int k1)

{

 

 

 

int i,j,e,z,x,y;

printf("\n\n");

 

for(i=0;i

{

for(j=0;j

{

a[j]=0;

}

 

}

//Wyswietlenie

clrscr();

 

for(i=0;i

{

 

for(j=0;j

{

x=2+j*8;

y=2+i*2;

 

gotoxy(x,y);

cprintf("%d",a[j]);

}

}

 

 

//strzalki

do

{

while(kbhit())

getch();

if (!(z=getch()))

switch(z=getch())

{

case 72: // do gory

y=y-2;

gotoxy(x,y);

break;

 

case 75: // w lewo

x=x-8;

gotoxy(x,y);

break;

 

case 77: // w prawo

if(x

x=x+8;

gotoxy(x,y);

 

break;

 

case 80: // w dol

y=y+2;

gotoxy(x,y);

break;

 

case 79:

e=0;

break;

}

 

else

if(z==13)

{

cscanf("%i",a[j]);

}

 

}

while(e);

 

}

Napisano

Wydaje mi sie, że podprogram (np. wprow1) powinien mieć przekazywana ta tablice poprzez referencje, w innym wypadku pracuje na kopiach tych tablic. Zatem te tablice zadeklarowane w main() zostają nietknięte. Tak mi sie zdaje. ;)

Odczyt i zapis najlepiej zrealizować poprzez strumienie plikowe i operatory strumieniowe ">".

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

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.