Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Niz, Matrica, String pomoc!

[es] :: C/C++ programiranje :: Niz, Matrica, String pomoc!

[ Pregleda: 4382 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

SAFF
Computer Art

Član broj: 49147
Poruke: 161
195.252.85.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Niz, Matrica, String pomoc!07.06.2006. u 16:50 - pre 217 meseci
1) kreirati matricu i prevesti u jednodimenzionalni niz....
2) da se kreira niz b u kome ce biti sadrzani elementi koji su veci od srednje vrednosti matrice...
3) neparne elemente u matrici zameniti nulom
4) uneti string i proveriti da li je sadrzan u drugom unetom stringu

1) kreirati matricu i prevesti u jednodimenzionalni niz...
Code:
do{
    printf("\nUnesi broj kolona matrice: ");
    scanf("%d",&n);
    printf("\nUnesi broj redova matrice: ");
    scanf("%d",&m);
}while ((n<0 || n>max) && (n<0 || n>max));
    printf("\n\tUnesite elemente matrice: \n");
    for (i=0;i<n;i++)
    for (j=0;j<m;j++)
    scanf("%d",&A[i][j]);
    printf("Uneta matrica je:\n");
    for(i=0;i<n;i++)  {
    for(j=0;j<m;j++)
    printf("%d ",A[i][j]);
    printf("\n");     }
    for(i=0;i<n;i++)
        {
        for (j=0;j<m;j++)
        B[i]=A[i][j];  }
    printf("Novoformirani niz A od elemenata matrice je: ");
    for (i=0;i<m*n;i++)
    printf("%d",B[i]);


Imam problem u ovom jer mi ispisuje nulu na poziciju poslednjeg elementa...
a za ostalo pomagajte...

SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.ADSL.neobee.net.



+987 Profil

icon Re: Niz, Matrica, String pomoc!07.06.2006. u 19:35 - pre 217 meseci
Resenje za prve tri tacke.

Code:

#include "stdafx.h";

int _tmain(int argc, _TCHAR* argv[])
{
    int A[10][10];
    int B[100]; //niz <-- matrica
    int b[100]; //niz sa vrednostima vecim od srednje
    int n,m,i,j,max=10;
    int sredvred=0;    
    do{
    printf("\nUnesi broj kolona matrice: ");
    scanf_s("%d",&n);
    printf("\nUnesi broj redova matrice: ");
    scanf_s("%d",&m);
}while ((n<0 || n>max) && (n<0 || n>max));

    printf("\n\tUnesite elemente matrice: \n");
    for (i=0;i<n;i++)
    for (j=0;j<m;j++)
    {
           scanf_s("%d",&A[i][j]);
           sredvred+=A[i][j];       //stedis jednu petlju, odmah ih sabiras!
    }
    sredvred/=(n*m);

    printf("Uneta matrica je:\n");
    for(i=0;i<n;i++)  {
    for(j=0;j<m;j++)
    printf("%d ",A[i][j]);
    printf("\n");     }

    // pretvaranje matrice u niz 
    for(i=0;i<n;i++)
        {
        for (j=0;j<m;j++)
        B[i*n+j]=A[i][j];  }                   //<------- Greska u tvom kodu, pogledaj index niza B

   // niz sa elementima vecim od srednje vrednosti
    int brojac=0;
    for(i=0;i<n;i++)
        {
        for (j=0;j<m;j++)
            if(A[i][j]>sredvred)
        b[brojac++]=A[i][j];  }
    //Zamena neparnih elemenata sa nulama
    for(i=0;i<n;i++)
        {
        for (j=0;j<m;j++)
            if(A[i][j]%2) A[i][j]=0;  }

    printf("Novoformirani niz B od elemenata matrice je: ");
    for (i=0;i<m*n;i++)
    printf("%d",B[i]);
    printf("Novoformirani niz b od elemenata matrice je: ");
    for (i=0;i<brojac;i++)
    printf("%d",b[i]);

    printf("Novoformirana matrica je: ");
    for(i=0;i<n;i++)
        {
        for (j=0;j<m;j++)
            printf("%d",A[i][j]);
    }
    printf("\n");
    return 0;
}


Pozdrav
 
Odgovor na temu

Igor Gajic

Član broj: 93194
Poruke: 747
*.ADSL.neobee.net.



+987 Profil

icon Re: Niz, Matrica, String pomoc!07.06.2006. u 20:08 - pre 217 meseci
i pod 4.

Najjednostavniji algoritam za nalazenje podstringa.
Pretrazujes prvi string karakter po karakter polazeci od nultog indexa. Zatim povecas index
za jedan i opet pretrazujes. I sve tako dok ne nadjes string ili dok ne dodjes do indeksa duz1-duz2
kada nema smisla vise pretrazivati jer je duzina stringa koji treba pretraziti manja od duzine stringa koji se trazi.

Code:

#include "stdafx.h";
int _tmain(int argc, _TCHAR* argv[])
{
        char a[100];  //string koji se pretrazuje
    char b[100];  //string koji se trazi
    int duz1,duz2,i,j;
    bool nasao=true;
    gets_s(a);  
    gets_s(b);  
        duz1=strlen(a);
    duz2=strlen(b);
    if(duz1<duz2)
        {printf("Greska!!");nasao=false;}
    else { 
            for(i=0;i<duz1-duz2;i++)
            {
                nasao=true;
                for(j=0;j<duz2;j++)
                    if(a[i+j]!=b[j]) nasao=false;
                if(nasao) break;
            }
         }
    if (nasao) printf("Podstring postoji na indexu: %d",i);
    else printf("Podstring ne postoji!");
return 0;


 
Odgovor na temu

mb_sa

Član broj: 50529
Poruke: 172
*.PPPoE-3095.sa.bih.net.ba.



Profil

icon Re: Niz, Matrica, String pomoc!07.06.2006. u 21:09 - pre 217 meseci
za stavku 4.) ima ugradjena funkcija strstr(), ali on vjeorvano mora napisati algoritam za to, sto je i uradio Igor Gajic ;)
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
194.106.187.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: Niz, Matrica, String pomoc!07.06.2006. u 22:32 - pre 217 meseci
Ovde imam problem kad se ovo izvrsi dobijam za rezultat nesto sasvim suprotno.
U cemu je problem!
Code:

// pretvaranje matrice u niz 
    for(i=0;i<n;i++)
        {
        for (j=0;j<m;j++)
        B[i*n+j]=A[i][j];  }                   //<------- Greska u tvom kodu, pogledaj index niza B

SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: Niz, Matrica, String pomoc!08.06.2006. u 08:35 - pre 217 meseci
Probaj sa B[i*m+j].

Objašnjenje: i je indeks npr. kolona. Kako se vidi iz koda, za svaku novu vrednost i će biti uneto m a ne n novih elemenata (indeks j ide 0,..,m-1).
Ipak se ++uje.
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
*.beotel.net.

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: Niz, Matrica, String pomoc!11.06.2006. u 00:16 - pre 217 meseci
Hvala vam na pomoci resio sam te probleme:]
Sad me interesuje kako da napravim funkciju za sabiranje svih elemenata u nizu...
Code:
void sabir(int *suma)
{
int z[max],i;n;
for(i=0;i<n;i++)
suma+=z[i];
}

gde gresim :]]]
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

mb_sa

Član broj: 50529
Poruke: 172
*.PPPoE-1266.sa.bih.net.ba.



Profil

icon Re: Niz, Matrica, String pomoc!11.06.2006. u 10:01 - pre 217 meseci
Tebi tvoja funkcija treba da vrati suma niza, a ti si stavio void (ne vraca nista). Doduse, mogo si i staviti void kao povratni tip, ali bi onda mora sumu ispisivati u tijelu funkcije. Plus, si kao paramter koji predajes stavio sumu, koju treba da dobijes :)

Dakle, ti treba da predas sve članove niza koji ce se sabirati. Ovdje je broj clanova niza konstantan, a ti ako zelis mozes kreirati nizove proizvoljnih velicina, a onda bi i vjerovatno broj clanova niza mora predati kao paramter funkciji saberi.

Code:
#include <stdio.h>
#include <conio.h>
#define N 5

int saberi(int niz[]) {
    int suma=0;
    int i;
    
    for (i=0; i<N; i++)
    suma+=niz[i];
    return suma;
    }

main() {
     int i; 
     int niz[N];
       
       
       for (i=0; i<N; i++) {
       printf("Unesi clanove niza. Clan %d", i+1);
       scanf("%d", &niz[i]);
       }
       
       printf ("Suma=%d", saberi(niz));
       
       getch();
}





Citat:
SAFF: Hvala vam na pomoci resio sam te probleme:]
Sad me interesuje kako da napravim funkciju za sabiranje svih elemenata u nizu...
Code:
void sabir(int *suma)
{
int z[max],i;n;
for(i=0;i<n;i++)
suma+=z[i];
}

gde gresim :]]]


[Ovu poruku je menjao mb_sa dana 11.06.2006. u 11:28 GMT+1]
 
Odgovor na temu

SAFF
Computer Art

Član broj: 49147
Poruke: 161
212.200.8.*

Jabber: esad@dr.com
Sajt: www.esad.tk


Profil

icon Re: Niz, Matrica, String pomoc!11.06.2006. u 14:01 - pre 217 meseci
Code:
void dovez (char *s1,char *s2)
{
int i,k,n;
n=strlen(s2);
for(i=0;i<k;i++)
s2[n+i]=s1[i];
s2[k+n]=0;
}
void main(void) {
clrscr();
char s[max],s1[max],s2[2*max];
int n,m,i,j,k;
printf("\n Unesite string:");
gets(s);
printf("\n Uneti string je: %s ",s);
k=strlen(s);
printf("\n Duzina stringa je %d",k);
for(i=0;i<k;i++)
*(s1+i)=*(s+i);
s1[k]='\0';
printf("\n Kopirani niz s1-> %s",s1);
printf("\n Unesite elemente stringa s2: ");
gets(s2);
printf("\n Uneti string je:%s",s2);
dovez(s1,s2);
printf("\n Dobijeni string s2 ->%s",s2);
scanf("\n"); }

Evo jednog primera te funkcije ali ipak ne uspevam da shvatim kako da napravim ovo za niz ....
Ova funkcija daje za vrednost 3 stringu vrednost prvog sve dok ne dodje do " " -praznog polja i onda ubacuje drugi string...
SAFF
Alles ist in ordnung...
http://www.esad.tk
 
Odgovor na temu

[es] :: C/C++ programiranje :: Niz, Matrica, String pomoc!

[ Pregleda: 4382 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.