Programiranje

Programiranje u C-u - od svega pomalo

Dex.pwn ned 21.10.2018 22:39

#include <stdio.h>
int main()
{
 int brojevi[10];
 for (byte i = 0; i < sizeof(brojevi); i++) sscanf("%d", &brojevi[i]);
 
 for (byte i = 0; i < sizeof(brojevi); i++)
 {
  if (brojevi[i] != 0 && i == sizeof(brojevi) - 1) printf("%c ", brojevi[i] + 64); // ZADNJE SLOVO
  else if (i != sizeof(brojevi) - 1) printf("%c ", brojevi[i] + 65); // SLOVO U REDU
  else printf("Kraj poruke");
 }
}

Equi pon 22.10.2018 08:39

Zanima me kako kad petlja krene vrtiti broj 1, kako da mu pridružim broj koji upišem. npr 5.

 

I jel ovaj zadatak uopće treba s  forpetljom, pošto mi petlja sama izbacije input, a ja bi trebao napisati svoje brojeve.

 

Riješio sam to s if i else if

Equi pon 29.10.2018 10:34

Pozdrav opet

 

Zadatak je upisati decimalne brojeve, pretvoriti ih u binarne i onda pobrojati broj jedinica (1). Ne znam sad kako da u sve to ubacim da prepoznaje jedinice i broji ih.

 

Za sad sam ovo uspio:

 

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int broj,b,broj2, b2,br1=0,br2=0, i, ostatak, binarni1=0, binarni2=0, jedinica1=1, jedinica2=1;

    broj2=b2;
    scanf("%d %d", &b, &b2);


    broj=b;
   while (b>0)
   {
       ostatak= b%2;
       binarni1= binarni1+ostatak*jedinica1;
       jedinica1=jedinica1*10;
       b= b/2;



   }
   broj2=b2;
   while (b2>0)
   {
        ostatak= b2%2;
       binarni2= binarni2+ostatak*jedinica2;
       jedinica2=jedinica2*10;
       b2= b2/2;



   }




    printf("%d %d", binarni1, binarni2);



    return 0;
}

Dex.pwn pon 29.10.2018 14:15

Evo ti u C++u pa prepravi kod u C(sscanf i te šeme).

Funkcija za dec2bin je pokupljena s neta.

 

 

#include <conio.h>
#include <iostream>

using namespace std;

void countOnes(int x, int &ones)
{
 do
 {
  if (x % 10 == 1) ones++;
  x /= 10;
 }
 while (x != 0);
}

long long convertDecimalToBinary(int n)
{
    long long binaryNumber = 0;
    int remainder, i = 1, step = 1;

    while (n!=0)
    {
        remainder = n%2;
        cout << "Step " << step++ << ": " << n << "/2, Remainder = " << remainder << ", Quotient = " << n/2 << endl;
        n /= 2;
        binaryNumber += remainder*i;
        i *= 10;
    }
    return binaryNumber;
}

int main()
{
 int x, ones = 0;

 cout << "Upisi broj: ";
 cin >> x;

 x = convertDecimalToBinary(x);

 countOnes(x, ones);
 cout << endl << ones;

 getch();
 return 0;
}

Radi provjereno
Equi pon 29.10.2018 15:52
Dex.pwn kaže...

Evo ti u C++u pa prepravi kod u C(sscanf i te šeme).

Funkcija za dec2bin je pokupljena s neta.

 

 

#include <conio.h>
#include <iostream>

using namespace std;

void countOnes(int x, int &ones)
{
 do
 {
  if (x % 10 == 1) ones++;
  x /= 10;
 }
 while (x != 0);
}

long long convertDecimalToBinary(int n)
{
    long long binaryNumber = 0;
    int remainder, i = 1, step = 1;

    while (n!=0)
    {
        remainder = n%2;
        cout << "Step " << step++ << ": " << n << "/2, Remainder = " << remainder << ", Quotient = " << n/2 << endl;
        n /= 2;
        binaryNumber += remainder*i;
        i *= 10;
    }
    return binaryNumber;
}

int main()
{
 int x, ones = 0;

 cout << "Upisi broj: ";
 cin >> x;

 x = convertDecimalToBinary(x);

 countOnes(x, ones);
 cout << endl << ones;

 getch();
 return 0;
}

Radi provjereno

 Hvala, probat cu to konvertirati s obzirom da sam tek krenuo s C programiranjem

lukaspy pet 2.11.2018 09:51

Poz, imam zadatak:

 

"Strašni Bundy voli kucati na vrata susjedima. Većinom susjedi baš ne reagiraju na to dobro - neki su već navikli pa znaju da on kuca otprilike oko 16 sati popodne, drugi se možda u to vrijeme ne nalaze doma ali vide masne otiske od kucanja u gornjem lijevom kutu vrata. Ostali koji su kod kuće su ga već na nekoliko načina pokušali uhvatiti i kazniti ali nije im uspjelo iz raznih raloga - neki se poskliznu na izlazu iz stana od masnih otisaka Bundy-evih cipela na svakodnevno svježe opranom podu hodnika, drugi su prestari da bi ga uhvatili ili je Bundy jednostavno prebrz. No ono što svi zajedno čekaju je poznati praznik Halloween (koji se inače na taj način ne slavi u Hrvata još od stoljeća sedmog), ali naš Bundy ga svejedno slavi. Jedini.

To što jedini slavi Halloween i jedini u kvartu ide maskiran kucati po vratima se može činiti kao pomalo neobična ideja - no Bundy osim potrebe da zvoni i kuca susjedima, ima i potrebu proučavati matematiku. Posbeno mu je zanimljiv problem Hodge Conjecture, ali i bez poznavanja rješenja tog problema lako je zaključiti da ako se minimizira broj suučesnika u događaju s obzirom na konačan broj bombona i slatkiša u susjedstvu, na taj način se maksimizira količina dobivenih slatkiša za Bundya."
Primjer ulaza 1:
4 2
5 11 5 6
Primjer izlaza 1:
17
Primjer ulaza 2:
7 4
9 9 9 2 2 2 5
Primjer izlaza 2:
32
Iskreno, nakon definiranja varijabli ne znam kako, i gdje da krenem. Ako neko ima neki prijedlog, smjernicu ili nesto, super, bilo kakva pomoc je dobrodosla. Hvala :)
Equi sub 3.11.2018 21:28

Pozdrav,

 

naišo sam na jedan problem.

 

"Napisati program koji će na temelju unosa datuma i godine rođenja za jednu osobu ispisati koji je ona horoskopski znak prema zodijaku i kojem elementu pripada. Nakon toga u program se može unijeti N osoba za koje se radi izračun kompatibilnosti s prvom osobom. Znakovi se slažu najbolje (razina kompatibilnosti) ukoliko pripadaju istom elementu."

 

Kako napraviti dio sa unosom N osoba i da npr. napišem 2 osobe i onda ide unos datuma tih osoba.

Equi ned 4.11.2018 21:53

Evo mene opet, zapeo sam kod krivog unosa.

 

Naime trebam učitati npr. dan koji je u intervalu od 1 do 31.

 

Ako je krivi, kako da ga opet učitam:

 

scanf ("%d", &dan);

 

if (dan < 0 || dan >31)

   printf ("Krivi unos");

   e sad da li ovdje ide opet scanf pa da prođe opet kroz if petlju (msm ne znam ovaj dio)

Equi sri 7.11.2018 13:33
Dex.pwn kaže...
UNOS: sscanf(...)
if(uvjet)
{
Krivi unos
goto UNOS;
}


na mobitelu sam

 ma riješio sam bilo je

uvijet
pa printf "Krivi unos";

scanf ("%d", &dan ili mjesec ili godina);

al hvala

Equi sri 14.11.2018 10:53

Pozdrav,

 

može li mi netko reći kako ovo funkcionira:

 

#include <stdio.h>
#include <stdlib.h>

int main()
{
int niz[8] = {-1};
int i = 0;

 for(i = 7; i >= 0; i--)
    {
         niz[i] += niz[7-i] * i;
     }
 printf("%d", niz[i]);

    return 0;
}

 

znam da je niz -1 0 0 0 0 0 0 -7.


Znam zašto je -1, ali ne razumijem ostatak kako se izvršava dalje kod.

 

 

 

SHVATIH

Equi uto 27.11.2018 13:16

#include <stdio.h>
#include <stdlib.h>
#define MAXR 10
#define MAXS 10
int main()
{
        int i,j, sx=1, sy=1;
        /** V= Vrata, TOCKE= su mjesta*/
        enum vrata {V=35};
        enum {TOCKE=46};
        char mat[MAXR][MAXS];

        mat[0][0]= V;
        mat [MAXR-1][0]= V;
        mat [0][MAXS-1]= V;
        mat [MAXR-1][MAXS-1]= V;

       for (i=1;i<MAXR-1; i++){
            mat [i][0]= mat [i][MAXS-1]=V;
                for (j=1; j<MAXS-1;j++){
                   mat [0][j]=mat [MAXR-1][j]=V;
       }
       }


        for(i = 1; i < MAXR-1; i++){
            for(j = 1; j < MAXS-1; j++){
                     mat[i][j] = TOCKE;
            }
        }


        return 0;
}

Pozdrav, kako da ovo dobro printf-am ?

Keklja sub 1.12.2018 10:26

pozz svima. Poceo sam uciti C programiranje i jako je zanimljivo ali jedno ne mogu razumjeti. Radi se o void funkciji. Svuda pise da ona ne vraca vrijednost. Sto znaci "vracanje vrijednosti" i sto je vrijednost? Ako stavim naredbu printf("nesto"); to mi se ispise na terminalu da li je to vracanje vrijednosti? I gdje je u biti vraca?
Hvala unaprijed

Top Bugovac sub 1.12.2018 14:17
Keklja kaže...
pozz svima. Poceo sam uciti C programiranje i jako je zanimljivo ali jedno ne mogu razumjeti. Radi se o void funkciji. Svuda pise da ona ne vraca vrijednost. Sto znaci "vracanje vrijednosti" i sto je vrijednost? Ako stavim naredbu printf("nesto"); to mi se ispise na terminalu da li je to vracanje vrijednosti? I gdje je u biti vraca?
Hvala unaprijed

 Vraca vrijednost na mjesto gdje si pozvao funkciju

 

npr., 

Neka funkcija faktorijel vraca int koji je faktorijel broja kojeg primi

 

a = faktorijel(3)

 

u varijablu a ce se spremiti rezultat funkcije (u ovom slucaju 6)

 

Void funkcije ne vracaju vrijednost pa bi poziv:
a = neka_funkc_koja_vraca_void()

bio neispravan jer u varijablu a ne bi imao sto spremiti

madagaskar123 sub 22.6.2019 12:57

Da li netko može ovo riješiti?

 

 

  1. 1. Kreirati dvodimenzionalno cjelobrojno polje koje predstavlja pravokutnu matricu i omogućiti korisniku unos dimenzije tako da je n x m (4<= n <= 10 i 5 <=m<=  13).

Popuniti dvodimenzionalno polje pseudo-slučajnim vrijednostima [-25, 30]. Pronaći najmanji element svakog stupca, te ispisati na ekran sumu svakog stupca pomnoženu najmanjim elementom tog stupca.

 

  1. 2. Napisati funkciju koja određuje i vraća koliko ima elemenata u predanom joj polju cijelih brojeva koje počinju sa znamenkom 2. U svrhu testiranja u main() funkciji učitati n elemenata s tipkovnice u cjelobrojno polje te pozvati napisanu funkciju i ispisati njenu povratnu vrijednost na ekran.

 

  1. 3. Napisati funkciju koja računa i vraća produkt svih vrijednosti elemenata polja koji su strogo veći od srednje vrijednosti svih elemenata polja i strogo manji od najveće vrijednosti u polju. Funkcija treba raditi i sa poljima različite duljine. U main() funkciji deklarirati jedno polje duljine 25, te popuniti s pseudo-slučajnim brojevima [-10, 30]. U main() funkciji pozvati napisanu funkciju i ispisati povratnu vrijednost.

 

  1. 4. Napisati funkciju koja u predanom joj stringu pronalazi i vraća koliko puta se ponavlja slog ''ka''. U main() funkciji dinamički zauzeti polje od 100 elemenata tipa char, unijeti string s tipkovnice i predati funkciji te ispisati povratnu vrijednost funkcije.