C++ zadaci,resenja,pitanja,tutoriali

Moze li neko da pokrene ovaj program? Mene izbacuje visual studio na desktop a online kompajleri nece da pokrenu, ne znam jel pravim neku gresku, sve mi se cini ispravno.

#include <stdio.h>
void main() {
int niz1[10], niz2[10], niz3[10], i, size1, size2, size3;
printf("Unesite velicinu prvog niza: \n");
scanf("%d", &size1);
printf("Unesite elemente niza velicine %d\n", size1);
for (i = 0; i < size1; i++) {
scanf("%d", niz1);
}
printf("Elementi prvog niza su: \n");
for (i = 0; i < size1; i++) {
printf("%d\n", niz1);
}
printf("Unesite velicinu drugog niza: \n");
scanf("%d", &size2);
printf("Unesite elemente niza velicine %d\n", size2);
for (i = 0; i < size2; i++) {
scanf("%d", niz2);
}
printf("Elementi drugog niza su: \n");
for (i = 0; i < size2; i++) {
printf("%d\n", niz2);
}
if (size1 == size2) {
size3 = size1 + size2;
for (i = 0; i < size1; i++) {
niz3 = niz1;
}
for (int j = 0; j < size2; j++) {
niz3 = niz2[j];
i++;
}
for (i = 0; i < size3; i++) {
for (int k, j = i + 1; j < size3; j++) {
if (niz3 <= niz3[j]) {
k = niz3;
niz3 = niz3[j];
niz3[j] = k;
}
}
}
}
printf("Elementi treceg opadajuceg niza su: \n");
for (i = 0; i < size3; i++) {
printf("%d ", niz3);
}
}
Treba da ti budu jasne 3 stvari? C nizovi nemaju bound check.printf nema nikakvu proveru tipa. C niz kad se baci kao parametar konvetuje se u pointer
na prvi lement.
 
На почетку сам ти исправио овај део.
C:
    printf("Unesite velicinu prvog niza: \n");

    scanf("%d", &size1);

    printf("Unesite elemente niza velicine %d\n", size1);

    for (i = 0; i < size1; i++) {

        scanf("%d", (niz1+i));

    }

    printf("Elementi prvog niza su: \n");

    for (i = 0; i < size1; i++) {

        printf("%d\n", niz1[i]);

    }

    printf("Unesite velicinu drugog niza: \n");

    scanf("%d", &size2);

    printf("Unesite elemente niza velicine %d\n", size2);

    for (i = 0; i < size2; i++) {

        scanf("%d", (niz2+i));

    }

    printf("Elementi drugog niza su: \n");

    for (i = 0; i < size2; i++) {

        printf("%d\n", niz2[i]);

    }
 
Koliko toliko ispravno unosenje:
Kod:
~/.../bmaxa_data/examples >>> cat input.c                                                                                                                                                                                    
#include <stdio.h>

void main() {

    int niz1[10], niz2[10], niz3[10], i, size1, size2, size3;
    int ok = 0;
    while (!ok) {
        printf("Unesite velicinu prvog niza: \n");

        ok = scanf("%d", &size1);
        if (!ok) getchar();
    }

    printf("Unesite elemente niza velicine %d\n", size1);

    for (i = 0; i < size1; i++) {
    ok = 0;
    while (!ok) {
        printf("unesite %d element niza: \n",i);

        ok = scanf("%d", &niz1[i]);
        if (!ok) getchar();
    }

    }

}
Fali jos provera da niz ne bude veci od 10.
 
Готово.

C:
#include <stdio.h>
void merge(int [], int, int [], int, int []);
int main()
{
   int niz1[10], niz2[10], niz3[10], i,c, size1, size2, size3, sorted[200];

    printf("Unesite velicinu prvog niza: \n");

    scanf("%d", &size1);

    printf("Unesite elemente niza velicine %d\n", size1);

    for (i = 0; i < size1; i++) {

        scanf("%d", (niz1+i));

    }

    printf("Elementi prvog niza su: \n");

    for (i = 0; i < size1; i++) {

        printf("%d\n", niz1[i]);

    }

    printf("Unesite velicinu drugog niza: \n");

    scanf("%d", &size2);

    printf("Unesite elemente niza velicine %d\n", size2);

    for (i = 0; i < size2; i++) {

        scanf("%d", (niz2+i));

    }

    printf("Elementi drugog niza su: \n");

    for (i = 0; i < size2; i++) {

        printf("%d\n", niz2[i]);

    }
    
    
    
    
    
   merge(niz1,size1,niz2,size2,sorted);
    
    printf("Sorted array:\n");

  for (size3 = 0; c < size1 + size2; c++) {
    printf("%d\n", sorted[c]);
  }
    
    

}
void merge(int a[], int m, int b[], int n, int sorted[]) {
  int i, j, k;

  j = k = 0;

  for (i = 0; i < m + n;) {
    if (j < m && k < n) {
      if (a[j] < b[k]) {
        sorted[i] = a[j];
        j++;
      }
      else {
        sorted[i] = b[k];
        k++;
      }
      i++;
    }
    else if (j == m) {
      for (; i < m + n;) {
        sorted[i] = b[k];
        k++;
        i++;
      }
    }
    else {
      for (; i < m + n;) {
        sorted[i] = a[j];
        j++;
        i++;
      }
    }
  }
}
 
Готово.

C:
#include <stdio.h>
void merge(int [], int, int [], int, int []);
int main()
{
   int niz1[10], niz2[10], niz3[10], i,c, size1, size2, size3, sorted[200];

    printf("Unesite velicinu prvog niza: \n");

    scanf("%d", &size1);

    printf("Unesite elemente niza velicine %d\n", size1);

    for (i = 0; i < size1; i++) {

        scanf("%d", (niz1+i));

    }

    printf("Elementi prvog niza su: \n");

    for (i = 0; i < size1; i++) {

        printf("%d\n", niz1[i]);

    }

    printf("Unesite velicinu drugog niza: \n");

    scanf("%d", &size2);

    printf("Unesite elemente niza velicine %d\n", size2);

    for (i = 0; i < size2; i++) {

        scanf("%d", (niz2+i));

    }

    printf("Elementi drugog niza su: \n");

    for (i = 0; i < size2; i++) {

        printf("%d\n", niz2[i]);

    }
   
   
   
   
   
   merge(niz1,size1,niz2,size2,sorted);
   
    printf("Sorted array:\n");

  for (size3 = 0; c < size1 + size2; c++) {
    printf("%d\n", sorted[c]);
  }
   
   

}
void merge(int a[], int m, int b[], int n, int sorted[]) {
  int i, j, k;

  j = k = 0;

  for (i = 0; i < m + n;) {
    if (j < m && k < n) {
      if (a[j] < b[k]) {
        sorted[i] = a[j];
        j++;
      }
      else {
        sorted[i] = b[k];
        k++;
      }
      i++;
    }
    else if (j == m) {
      for (; i < m + n;) {
        sorted[i] = b[k];
        k++;
        i++;
      }
    }
    else {
      for (; i < m + n;) {
        sorted[i] = a[j];
        j++;
        i++;
      }
    }
  }
}
Sta ako elementi niza a i b nisu sortirani?
 
C:
#include <stdio.h>
void merge(int [], int, int [], int, int []);

int main() {
  int niz1[100], niz2[100], size1, size2, c, sorted[200];

  printf("Broj elemenata prvog niza\n");
  scanf("%d", &size1);

  printf("Unesite %d elementa\n", size1);
  for (c = 0; c < size1; c++) {
    scanf("%d", &niz1[c]);
  }

  printf("Broj elemenata drugog niza\n");
  scanf("%d", &size2);

  printf("Unesite %d elemente\n", size2);
  for (c = 0; c < size2; c++) {
    scanf("%d", &niz2[c]);
  }

  merge(niz1,size1,niz2,size2,sorted);

  printf("Sortiran niz:\n");

  for (c = 0; c < size1 + size2; c++) {
    printf("%d\n", sorted[c]);
  }

  return 0;
}

void merge(int a[], int m, int b[], int n, int sorted[]) {
  int i, j, k;

  j = k = 0;

  for (i = 0; i < m + n;) {
    if (j < m && k < n) {
      if (a[j] < b[k]) {
        sorted[i] = a[j];
        j++;
      }
      else {
        sorted[i] = b[k];
        k++;
      }
      i++;
    }
    else if (j == m) {
      for (; i < m + n;) {
        sorted[i] = b[k];
        k++;
        i++;
      }
    }
    else {
      for (; i < m + n;) {
        sorted[i] = a[j];
        j++;
        i++;
      }
    }
  }
}
Screenshot_1.png
 
C:
#include <stdio.h>
void merge(int [], int, int [], int, int []);

int main() {
  int niz1[100], niz2[100], size1, size2, c, sorted[200];

  printf("Broj elemenata prvog niza\n");
  scanf("%d", &size1);

  printf("Unesite %d elementa\n", size1);
  for (c = 0; c < size1; c++) {
    scanf("%d", &niz1[c]);
  }

  printf("Broj elemenata drugog niza\n");
  scanf("%d", &size2);

  printf("Unesite %d elemente\n", size2);
  for (c = 0; c < size2; c++) {
    scanf("%d", &niz2[c]);
  }

  merge(niz1,size1,niz2,size2,sorted);

  printf("Sortiran niz:\n");

  for (c = 0; c < size1 + size2; c++) {
    printf("%d\n", sorted[c]);
  }

  return 0;
}

void merge(int a[], int m, int b[], int n, int sorted[]) {
  int i, j, k;

  j = k = 0;

  for (i = 0; i < m + n;) {
    if (j < m && k < n) {
      if (a[j] < b[k]) {
        sorted[i] = a[j];
        j++;
      }
      else {
        sorted[i] = b[k];
        k++;
      }
      i++;
    }
    else if (j == m) {
      for (; i < m + n;) {
        sorted[i] = b[k];
        k++;
        i++;
      }
    }
    else {
      for (; i < m + n;) {
        sorted[i] = a[j];
        j++;
        i++;
      }
    }
  }
}
Pogledajte prilog 761883
Kod:
~/.../bmaxa_data/examples >>> ./a.out                                                                                                                                                                                        
Broj elemenata prvog niza
3
Unesite 3 elementa
3
5
1
Broj elemenata drugog niza
3
Unesite 3 elemente
4
6
2
Sortiran niz:
3
4
5
1
6
2
Ne valja, kao sto rekoh....
 
Licni izazov. Proizvoljan niz gde korisnik rucno unosi velicinu redova i kolona u nizu, racunar odredjuje neki rendom broj za element niza do 100 i na kraju program ispisuje niz. Program radi kad postavi se rucno myGrades[2][3], ali puca posle prvog loop-a ako je stavljeno ovako. Ipisuje vrednosti myGrades[0][0-2] i tu pukne.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{

int i,j,column,row,myGrades[column][row];
time_t t;
srand((unsigned) time(&t));
printf("\n Unesite broj kolona i redova");
scanf("%d %d",&column,&row);

for(i=0;i<column;i++)
for(j=0;j<row;j++)
{
myGrades[ i ] [ j ]=rand()%100;
printf("Vrednost elementa niza %d %d vrednost %d",i,j,myGrades[ i ] [ j ]);
printf("\n");
}
return 0;
}

Sta sam zajebao? Garant je neka debilana tipa fali mi zagradica ili je postavljena na pogresno mesto.
 
resio!

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{

int i,j,row,column,myGrades[column][row];
time_t t;
srand((unsigned) time(&t));
printf("\n Unesite broj kolona i redova");
scanf("%d %d",&column,&row);

for(i=0;i<column;i++)
for(j=0;j<row;j++)
{
myGrades [ i ][ j ]=rand()%20;
printf("Vrednost niza kolona %d, redova %d vrednost %d",i,j,myGrades[ i ][ j ]);
printf("\n");
}

return 0;
}
 

Prilozi

  • ***** mu dete.JPG
    ***** mu dete.JPG
    47,9 KB · Pregleda: 7
Ne valja. column i row nisu inicijalizovani a sa time definises VLA.
Premesti definiciju VLA nakon scanf. Sa obzirom da koristis c99, to se moze.
edit:
niko zivi ne proverava da li je scanf uspeo ;)
Cek, cek. Izvini, ja sam novajlija u ovom programiranju, jos ucim. Nije mi jasno bas sta sam pogresio i kako program radi ako sam pogresio? :D
Ima druga slicica sa ispisom, sad sam bas jos jednom probao i ispisuje mi vrednosti kako treba.

Hoces da kazes da sam int row, column; trebao da stavim ispod scanf?
 
Cek, cek. Izvini, ja sam novajlija u ovom programiranju, jos ucim. Nije mi jasno bas sta sam pogresio i kako program radi ako sam pogresio? :D
Ima druga slicica sa ispisom, sad sam bas jos jednom probao i ispisuje mi vrednosti kako treba.

Hoces da kazes da sam int row, column; trebao da stavim ispod scanf?

myGrades[column][row];
e to stavi iza scanf. To je VLA koji se tu inicijalizauje na slucajne u memoriji vrednosti.
 

Back
Top