C scitanie poli

Programovacie jazyky, rady, poradňa...
kachna
King
King
Používateľov profilový obrázok
Príspevky: 1914
Registrovaný: 24 feb 2006, 14:37
Bydlisko: bratislava

C scitanie poli

Príspevok od používateľa kachna »

ahoj. ja lama v C by som potreboval poradit ako scitat:
mam zadane i,j,pole1[4][4] a k,l,pole2[4][4] a chcel by som vediet ako scitat: prvy riadok: x1 + y1, x2 + y2 .... x4 + y4,
druhy riadok x1 + 12 ...... x4 + y4,
.

. az stvrty riadok x1 + y1.... x4 + y4
X a Y su matice

alebo tu je zdrojovy

Kód: Vybrať všetko

#include<stdio.h>
int main(void)
{
    int i,j,k,l; 
    
    int pole1[4][4];
	int pole2[4][4];
    for(i = 0;i<4;i++)
    {
        printf("\nZadajde 4 cisla prvej matice do %d.riadku\n",i+1);
        for(j = 0;j<4;j++)
        { 
            printf("\nZadajde %d.cislo.",j+1);
            scanf("%d",&pole1[j][i]); 
        }
    }; 
    printf("\n\nVytvorena matica:\n");
    for(i = 0;i<4;i++)
    {
        for(j = 0;j<4;j++)
        { 
			      printf("%d ",pole1[j][i]); 
        };
        printf("\n");
    };
	for(k= 0;k<4;k++)
    {
        printf("\nZadajde 4 cisla druhej matice do %d.riadku\n",k+1);
        for(l = 0;l<4;l++)
        { 
            printf("\nZadajde %d.cislo.",l+1);
            scanf("%d",&pole1[k][l]); 
          
        }
    }; 
    printf("\n\nVytvorena matica:\n");
    for(k = 0;k<4;k++)
    {
        for(l = 0;l<4;l++)
        { 
            printf("%d ",pole1[k][l]); 
        };

	
	getchar();
    getchar(); 
}
kachna
King
King
Používateľov profilový obrázok
Príspevky: 1914
Registrovaný: 24 feb 2006, 14:37
Bydlisko: bratislava

Príspevok od používateľa kachna »

to mi nikto nevie poradit?
programator
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 18 apr 2005, 8:31
Bydlisko: Papua new Guinea
Kontaktovať používateľa:

Príspevok od používateľa programator »

Urobil som ti to, len pokial ma pamat neklame, 2 matice sa scitavali sposobom : scitam riadok 1. matice so stlpcom 2. matice ...

Ale to uz nie je problem dorobit/prerobit...

Zdrojovy kod :

Kód: Vybrať všetko

#include <stdio.h> 

#define MAX_X 4
#define MAX_Y 4

void scan_m(int *p[][MAX_Y], int X, int Y)
{
   int i, j;       
     
   for (i = 0; i < X; i++) {
       printf("\nZadajde 4 cisla matice do %d.riadku : \n\n", (i + 1));
        
       for (j = 0; j < Y; j++) {
           printf("Zadajde %d.cislo : ", (j + 1));    
           scanf("%d", &p[j][i]);
       }            
   }      
}

void print_m(int *p[][MAX_Y], int X, int Y)
{
   int i, j;       
     
   for (i = 0; i < X; i++) { 
       for (j = 0; j < Y; j++)    
           printf("%d ", p[j][i]);
   
       puts("");            
   }      
}

void sum_m(int p1[][MAX_Y], int p2[][MAX_Y], int X, int Y)
{
   int i, j;
     
   for (i = 0; i < X; i++) 
       for (j = 0; j < Y; j++)    
           p1[j][i] += p2[j][i];
}

int main(void) 
{ 
   int i,j; 
    
   int pole1[MAX_X][MAX_Y], pole2[MAX_X][MAX_Y]; 
   
   scan_m(pole1, MAX_X, MAX_Y);
   
   printf("\n\nVytvorena matica :\n"); 
   print_m(pole1, MAX_X, MAX_Y);
    
   
   scan_m(pole2, MAX_X, MAX_Y);
   
   printf("\n\nVytvorena matica :\n"); 
   print_m(pole2, MAX_X, MAX_Y); 
   
   sum_m(pole1, pole2, MAX_X, MAX_Y);
   printf("\n\nSucet matic :\n"); 
   print_m(pole1, MAX_X, MAX_Y);
    
   system("PAUSE");     
}

audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

mal si tam mrte vela chýb. Chýbala ti tam jedna zložená zátvorka, v druhom cykle znovu načítavaš do pole1 čím si prvú maticu prepíšeš, načítavaš ju do stlpcov kým prvú načítavš do riadkov...
Radšej ti to sem hodím celé prerobené:

Kód: Vybrať všetko

#include<stdio.h>

int main(void)
{
    int i,j,k,l;
   
    int pole1[4][4];
   int pole2[4][4];
    for(i = 0;i<4;i++)
    {
        printf("\nZadajde 4 cisla prvej matice do %d.riadku\n",i+1);
        for(j = 0;j<4;j++)
        {
            printf("\nZadajde %d.cislo.",j+1);
            scanf("%d",&pole1[j][i]);
        }
    };
    printf("\n\nVytvorena matica:\n");
    for(i = 0;i<4;i++)
    {
        for(j = 0;j<4;j++)
        {
               printf("%d ",pole1[j][i]);
        };
        printf("\n");
    };
   for(k= 0;k<4;k++)
    {
        printf("\nZadajde 4 cisla druhej matice do %d.riadku\n",k+1);
        for(l = 0;l<4;l++)
        {
            printf("\nZadajde %d.cislo.",l+1);
            scanf("%d",&pole2[l][k]);

        }
    };
    printf("\n\nVytvorena matica:\n");
    for(k = 0;k<4;k++)
    {
        for(l = 0;l<4;l++)
        {
            printf("%d ",pole2[l][k]);
        };
        printf("\n");

}
printf("\n\nSucet matic:\n");
  for(i = 0;i<4;i++)
    {
        for(j = 0;j<4;j++)
        {
            printf("%d ",pole1[j][i]+pole2[j][i]);
        };
        printf("\n");

}
system("pause");
}
kachna
King
King
Používateľov profilový obrázok
Príspevky: 1914
Registrovaný: 24 feb 2006, 14:37
Bydlisko: bratislava

Príspevok od používateľa kachna »

uz som to vyriesil inde ale velka vdaka za snahu chlapci aj ked moje zadanie bolo obycajne scitanie po riadkoch.
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

programator napísal:Urobil som ti to, len pokial ma pamat neklame, 2 matice sa scitavali sposobom : scitam riadok 1. matice so stlpcom 2. matice ...
tak sa matice nasobia :wink: ..
pri scitavani musia byt matice rovnako velke a scitavaju sa vzdy len dvojice prvkov na rovnakych indexoch
Napísať odpoveď