[ damir9 @ 07.04.2016. 19:12 ] @
Imam problem sa prevodjenjem programa iz C++-a u C.
Program u C++-u koji radi dobro:
Code:
#include <cstdlib>
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main()
 {
     int n,d,q,i;
     int c[9];
     cout<<"Unesite dinarski iznos koji podizete: ";
     cin>>d;
     cout<<"Unesite sa koliko vrsta novcanica raspolazete: ";
     cin>>n;
     cout<<"Unseite dinarske iznose novcanica od najmanjeg do najveceg: \n";
     for(i=0;i<n;i++)
     {
         cout<<"Unesite vrednost novcanice br." <<i+1<<" ";
         cin>>c[i];
     }
    cout<<"ISPLATA\n";
     i=n-1;
     while((i>=0)&&(d>0))
     {
         q=d/c[i];
         d=d%c[i];
         if(q>0)
         {
             if(d>0) cout<<q<<" * "<<c[i]<<" + ";
             else cout<<q<<" * "<<c[i]<<" . ";
         }
         i--;
     }
     if(d>0) cout<<" od ukupnog iznosa ostalo je" <<d<< "dinara\n";
     system("PAUSE>>null");
    return 0;
}


Isti program u C-u koji ne radi kako treba:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main()
 {
     int n,d,q,i;
     int c[9];
     printf("Unesite dinarski iznos koji podizete: ");
     scanf("%d", &d);
     printf("Unesite sa koliko vrsta novcanica raspolazete: ");
     scanf("%d", &n);
     printf("Unseite dinarske iznose novcanica od najmanjeg do najveceg: \n");
     for(i=0;i<n;i++)
     {
         printf("Unesite vrednost novcanice br. %i+1 ");
         scanf("%s", &c[i]);
     }
     printf("ISPLATA\n");
     i=n-1;
     while((i>=0)&&(d>0))
     {
         q=d/c[i];
         d=d%c[i];
         if(q>0)
         {
             if(d>0) printf("%q    *    %c[i]    +    ");
             else printf("%q    *    %c[i]    .");
         }
         i--;
     }
     if(d>0) printf(" od ukupnog iznosa ostalo je %d dinara\n");
     system("PAUSE>>null");
    return 0;
}


Jos sam pocetnik u programiranju i ne mogu naci gresku u kodu. Hvala unapred.
[ Nedja995 @ 07.04.2016. 19:38 ] @
Nisam pokretao kod ali ocigledni problemi koje sam zapazio su u upotrebi printf-a.
primer:
Code:
printf("%q    *    %c[i]    +    ");

pravilno:
Code:
printf("%d   *    %d    +    ", q, c[i]);

[ damir9 @ 07.04.2016. 19:58 ] @
Hvala puno, ali ne radi ponovo.
Mozda da je problem oko promenljive c ali nisam siguran.
[ djoka_l @ 07.04.2016. 20:02 ] @
ni jedan printf u kojem imaš % ne valja. Pogledaj kako se koristi printf.
[ damir9 @ 07.04.2016. 20:31 ] @
Ispravio sam printf-ove ali i dalje ne radi dobro.
Code:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main()
 {
     int n,d,q,i;
     int c[9];
     printf("Unesite dinarski iznos koji podizete: ");
     scanf("%d", &d);
     printf("Unesite sa koliko vrsta novcanica raspolazete: ");
     scanf("%d", &n);
     printf("Unseite dinarske iznose novcanica od najmanjeg do najveceg: \n");
     for(i=0;i<n;i++)
     {
         printf("Unesite vrednost novcanice: ");
         scanf("%s", &c[i]);
     }
     printf("ISPLATA\n");
     i=n-1;
     while((i>=0)&&(d>0))
     {
         q=d/c[i];
         d=d%c[i];
     
         if(q>0)
         {
         if(d>0) printf("%d * %s +", q, c[i]); 
         else printf("%d * %s",q,c[i]);
            }
         i--;
}
      if(d>0) printf(" od ukupnog iznosa ostalo je %d dinara\n",d);

    system("PAUSE>>null");
    return 0;
}

Umesto ovog http://prntscr.com/apeobi
ja dobijem ovo http://prntscr.com/apen3u
[ Mihajlo Cvetanović @ 07.04.2016. 21:08 ] @
I promenljiva q i svi elementi niza c su tipa int, i zato se za njih u printf formatu koristi %d. Ako koristiš nešto što nije %d (recimo %s) onda dolazi do pogrešnog prikaza. Zameni na oba mesta %s sa %d da bi prikaz bio ispravan.

Takođe, elementi niza c se ne učitavaju lepo jer opet koristiš %s (za char*) umesto %d (za int).

[Ovu poruku je menjao Mihajlo Cvetanović dana 07.04.2016. u 22:28 GMT+1]
[ damir9 @ 07.04.2016. 21:26 ] @
Hvala na pomoci ali ponovo mi sve isto prikazuje.
[ Mihajlo Cvetanović @ 07.04.2016. 21:29 ] @
Kasno sam primetio da istu grešku imaš i u scanf-u.

Elementi niza c se ne učitavaju lepo jer opet koristiš %s (za char*) umesto %d (za int).
[ damir9 @ 07.04.2016. 21:32 ] @
Hvala puno, radi sad sve ok :D