C/C++

Член од
24 мај 2012
Мислења
294
Поени од реакции
114
Со помош на while do циклус

Внесете било кој целоброен тип на податок(и печатете го) и останете во циклусот се додека не се внеси (-1) или ако се внеси променлива која не е цел број.
Почетната вредност на целобројниот тип е 0. ako mozi nekoj da pomogni
#include <iostream>
using namespace std;
int main ()
{
int m=0;
float n=0;
while(n!=-1 || (n-m)==0)
{
cout << n<<endl;
cout << "Vnesi broj"<<endl;
cin >> n;
m=n;
}
cout <<"Brojot e decimalen";
return 0;
}

Sent from my GT-I9301I using Tapatalk
 
Последно уредено:
Член од
25 ноември 2012
Мислења
31
Поени од реакции
6
Ако може малце помош со задачава пробувам веќе два сати да е решам. Јас вака пробувам. Еднио случај го решив ако нема доволно но не можам да го решам ако има доволно шкорчина.

#include <iostream>

using namespace std;

int main()
{
int b;
cin>>b;

if() // ne znam ovde so treba
{
cout<<""<<endl;
}


else if(b<=11)
{
cout<<"-1";
}
return 0;

Дедо Трајан му дал на внукот Теодор M чкорчиња. Тој му дал задача сите М чкорчиња да ги нареди така што ќе претстави еден четирицифрен број.
Теодор цифрите ги претставува со чкорчиња како што е дадено на сликата:



Имено, за цифрата 1 користи точно 3 чкорчиња, за цифрата 2 користи точно 5 чкорчиња, за цифрата 3 користи 5 чкорчиња, и за следните цифри по редослед 4, 5, 5, 3, 7, 5 и 6 чкорчиња.

Кој е најголемиот број кој може да го претстави Теодор со употреба на сите чкорчињата што му ги дал дедо Трајан?
Влез
Во првиот и единствен ред е даден бројот на чкорчиња M (1 <= M <= 100).
Излез
Во еден ред се печати максималниот број кој може да го претстави Теодор. Ако Теодор не може да претстави број согласно барањата дадени во задачата, треба да се отпечати -1.

Примери
влез
13
излез
7774

влез
8
излез
-1

Објаснување за првиот пример: Со 13 чкорчиња може да се претстават четрицифрените броеви: 1114, 1741, 7774 итн. Од сите четирицифрени броеви што може да се претстават, најголем е бројот 7774.
 
Член од
21 март 2014
Мислења
524
Поени од реакции
386
Ако може малце помош со задачава пробувам веќе два сати да е решам. Јас вака пробувам. Еднио случај го решив ако нема доволно но не можам да го решам ако има доволно шкорчина.

#include <iostream>

using namespace std;

int main()
{
int b;
cin>>b;

if() // ne znam ovde so treba
{
cout<<""<<endl;
}


else if(b<=11)
{
cout<<"-1";
}
return 0;

Дедо Трајан му дал на внукот Теодор M чкорчиња. Тој му дал задача сите М чкорчиња да ги нареди така што ќе претстави еден четирицифрен број.
Теодор цифрите ги претставува со чкорчиња како што е дадено на сликата:



Имено, за цифрата 1 користи точно 3 чкорчиња, за цифрата 2 користи точно 5 чкорчиња, за цифрата 3 користи 5 чкорчиња, и за следните цифри по редослед 4, 5, 5, 3, 7, 5 и 6 чкорчиња.

Кој е најголемиот број кој може да го претстави Теодор со употреба на сите чкорчињата што му ги дал дедо Трајан?
Влез
Во првиот и единствен ред е даден бројот на чкорчиња M (1 <= M <= 100).
Излез
Во еден ред се печати максималниот број кој може да го претстави Теодор. Ако Теодор не може да претстави број согласно барањата дадени во задачата, треба да се отпечати -1.

Примери
влез
13
излез
7774

влез
8
излез
-1

Објаснување за првиот пример: Со 13 чкорчиња може да се претстават четрицифрените броеви: 1114, 1741, 7774 итн. Од сите четирицифрени броеви што може да се претстават, најголем е бројот 7774.
Јас требаше на натпреварот само оваа да ја решавам, инаку еве ти помош земај ги само најголемите броеви(на пр за 9 треба 5 чкорчиња како и за 2 итн.) и значи треба четирицифрен а минимален број на чкорчиња со кој може да се направи број е 3 значи(3*4=12 како и максимален 28=7*4).
 
Член од
11 август 2014
Мислења
38
Поени од реакции
6
ПОМОШ
#include<iostream>
#include<cstring>
using namespace std;
struct Vozduhoplov
{
char ime[15];
float brzina;
}Vozduhoplov1,Vozduhoplov2;
void print_Vozduhoplov(struct Vozduhoplov V)
{
cout<<"Podatoci za Vozduhoplov:"<<endl;
cout<<"Ime:"<<V.ime<<endl;
cout<<"Brzina:"<<V.brzina<<endl;
}
main()
{
char ime[15];
float brzina;
cout<<"Vnesete podatoci za prviot vozduhoplov:"<<endl;
cout<<"Ime:";cin>>ime;
strcpy(Vozduhoplov1.ime,ime);
cout<<"Brzina na vozduhoplov:";cin>>brzina;
Vozduhoplov1.brzina=brzina;
cout<<endl;
cout<<"Vnesete podatoci za vtoriot vozduhoplov:"<<endl;
cout<<"Ime:";cin>>ime;
strcpy(Vozduhoplov.ime,ime);
cout<<"Brzina na vozduhoplov:";cin>>brzina;
Vozduhoplov1.brzina=brzina;
cout<<endl;
print_vozduhoplov(vozduhoplov1);
cout<<endl;
print_vozduhoplov(vozduhoplov2);
cout<<endl;
if(Vozduhoplov.brzina==Vozduhoplov2.brzina)
cout<<"Dvata vozduhoplova imaat ista brzina"<<endl;
else if(Vozduhoplov1.brzina>Vozduhoplov2.brzina)
cout<<"Vozduhoplovot koj ima pogolema brzina e:"<<Vozduhoplov1.ime<<endl;
else
cout<<"Vozduhoplovot koj ima pogolema brzina e:"<<ozduhoplov2.ime<<endl;
system("pause");
return 0;
}
 
S

smiljo

Гостин
Ако може малце помош со задачава пробувам веќе два сати да е решам. Јас вака пробувам. Еднио случај го решив ако нема доволно но не можам да го решам ако има доволно шкорчина.

#include <iostream>

using namespace std;

int main()
{
int b;
cin>>b;

if() // ne znam ovde so treba
{
cout<<""<<endl;
}


else if(b<=11)
{
cout<<"-1";
}
return 0;

Дедо Трајан му дал на внукот Теодор M чкорчиња. Тој му дал задача сите М чкорчиња да ги нареди така што ќе претстави еден четирицифрен број.
Теодор цифрите ги претставува со чкорчиња како што е дадено на сликата:



Имено, за цифрата 1 користи точно 3 чкорчиња, за цифрата 2 користи точно 5 чкорчиња, за цифрата 3 користи 5 чкорчиња, и за следните цифри по редослед 4, 5, 5, 3, 7, 5 и 6 чкорчиња.

Кој е најголемиот број кој може да го претстави Теодор со употреба на сите чкорчињата што му ги дал дедо Трајан?
Влез
Во првиот и единствен ред е даден бројот на чкорчиња M (1 <= M <= 100).
Излез
Во еден ред се печати максималниот број кој може да го претстави Теодор. Ако Теодор не може да претстави број согласно барањата дадени во задачата, треба да се отпечати -1.

Примери
влез
13
излез
7774

влез
8
излез
-1

Објаснување за првиот пример: Со 13 чкорчиња може да се претстават четрицифрените броеви: 1114, 1741, 7774 итн. Од сите четирицифрени броеви што може да се претстават, најголем е бројот 7774.
Код:
#include <iostream>
using namespace std;
int main()
{
    int m;                          // broj na chkorchinja
    cin>>m;
    int najgolem,momentalen;
    for(int i = 1000;i<10000;i++){
        momentalen = i;
        int temp = m;
        int tempBroj = i;
        for(int i = 0;i<4;i++){
            int c = 0;
            c = tempBroj%10;
            tempBroj = tempBroj/10;
            switch(c){
                case 1:temp-=3;
                    break;
                case 2:temp-=5;
                    break;
                case 3:temp-=5;
                    break;
                case 4:temp-=4;
                    break;
                case 5:temp-=5;
                    break;
                case 6:temp-=5;
                    break;
                case 7:temp-=3;
                    break;
                case 8:temp-=7;
                    break;
                case 9:temp-=5;
                    break;
                case 0:temp-=6;
                    break;
                    }
                }
        if(temp == 0)
            najgolem = momentalen;
    }
    if(najgolem<=9999 && najgolem>=1000)
            cout<<najgolem;
    else
        cout<<"-1";
    return 0;
}
eve ti ja reshena zadachata,probaj da go razberesh kodot,ako ne ti e jasno neshto kazhi kje podobjasnam.
 
D

DAoliHVAR

Гостин
Јас требаше на натпреварот само оваа да ја решавам, инаку еве ти помош земај ги само најголемите броеви(на пр за 9 треба 5 чкорчиња како и за 2 итн.) и значи треба четирицифрен а минимален број на чкорчиња со кој може да се направи број е 3 значи(3*4=12 како и максимален 28=7*4).
kakov natprevar?
 
Член од
26 декември 2015
Мислења
5
Поени од реакции
1
Дали може некој да ми помогне ? кога го компајлирам кодот ми излегува Error но не можам да сватам каде е грешката ! ?

The Code :


#include <iostream>
#include <stdio.h>

using namespace std;

struct date
{
int day;
int month;
int year;
};

void findDate(int d1, int d2)
{
int day;
int month;
int year;

d1=day+(month*30)+(year*360);

d2=day+(month*30)+(year*360);
}

int compareDate(int d1, int d2)
{
if(d1>d2)
{
cout<<"The date "<<d1<<"is bigger than the date "<<d2<<endl;
}
else if(d1<d2)
{
cout<<"The date "<<d1<<" is smaller than the date "<<d2<<endl;
}
else
cout<<"They are the same"<<endl;

}

int main ()
{
struct date d1;
struct date d2;

cout<<"Enter the day: "<<endl;
cin>>d1.day;
cout<<"Enter the month: "<<endl;
cin>>d1.month;
cout<<"Enter the year: "<<endl;
cin>>d1.year;

cout<<endl<<endl;

cout<<"Enter the day: "<<endl;
cin>>d2.day;
cout<<"Enter the month: "<<endl;
cin>>d2.month;
cout<<"Enter the year: "<<endl;
cin>>d2.year;

findDate(d1,d2);
compareDate(d1,d2);

}


и ево Error :

error: cannot convert 'date' to 'int' for argument '1' to 'void' findDate(int, int)'
error: cannot convert 'date' to 'int' for argument '1' to 'void' compareDate(int, int)'
 
Член од
8 октомври 2007
Мислења
4.680
Поени од реакции
8.511
Дали може некој да ми помогне ? кога го компајлирам кодот ми излегува Error но не можам да сватам каде е грешката ! ?

The Code :


#include <iostream>
#include <stdio.h>

using namespace std;

struct date
{
int day;
int month;
int year;
};

void findDate(int d1, int d2)
{
int day;
int month;
int year;

d1=day+(month*30)+(year*360);

d2=day+(month*30)+(year*360);
}

int compareDate(int d1, int d2)
{
if(d1>d2)
{
cout<<"The date "<<d1<<"is bigger than the date "<<d2<<endl;
}
else if(d1<d2)
{
cout<<"The date "<<d1<<" is smaller than the date "<<d2<<endl;
}
else
cout<<"They are the same"<<endl;

}

int main ()
{
struct date d1;
struct date d2;

cout<<"Enter the day: "<<endl;
cin>>d1.day;
cout<<"Enter the month: "<<endl;
cin>>d1.month;
cout<<"Enter the year: "<<endl;
cin>>d1.year;

cout<<endl<<endl;

cout<<"Enter the day: "<<endl;
cin>>d2.day;
cout<<"Enter the month: "<<endl;
cin>>d2.month;
cout<<"Enter the year: "<<endl;
cin>>d2.year;

findDate(d1,d2);
compareDate(d1,d2);

}


и ево Error :

error: cannot convert 'date' to 'int' for argument '1' to 'void' findDate(int, int)'
error: cannot convert 'date' to 'int' for argument '1' to 'void' compareDate(int, int)'
d1 и d2 ти се дефинирани како структури:
struct date d1;
struct date d2;

Функциите како аргументи ти примаат целобројни променливи
void findDate(int d1, int d2)
int compareDate(int d1, int d2)

Ти наместо со целобројни променливи како аргументи, ги користиш со структурите:
findDate(d1,d2);
compareDate(d1,d2);

И самата грешка ти кажува, не може да го конвертира date to int.
Најверојатно треба да ги смениш функциите да примаат struct date како аргумент и да го измениш кодот во нив, т.е да ги обработуваш структурите.
Башка што findDate не ти врши никаква функција. Треба да преиспиташ што точно треба да прави findDate и да го промениш кодот во таа функција.
 
Член од
27 јули 2015
Мислења
16
Поени од реакции
3
Здраво. Ми треба објаснување за овај код. Всушност не ми е јасно динамичкото алоцирање низа кон класа. Дали некој може да ми помогне?
Igrachka **kupche=new Igrachka*[n];
for(int i=0;i<n;i++)
{
cin>>p;
if(p==1)
{
cin>>boja>>gustina>>radius;
kupche=new Topka(boja,gustina,radius);
}
 
Член од
31 август 2008
Мислења
1.853
Поени од реакции
815
Здраво. Ми треба објаснување за овај код. Всушност не ми е јасно динамичкото алоцирање низа кон класа. Дали некој може да ми помогне?
Igrachka **kupche=new Igrachka*[n];
for(int i=0;i<n;i++)
{
cin>>p;
if(p==1)
{
cin>>boja>>gustina>>radius;
kupche=new Topka(boja,gustina,radius);
}
Во кодот нема алоцирање низа кон класа. Такво нешто не смее ни да има, компајлерот ќе покаже грешка.

**kupche е двоен поинтер т.е поинтер кон поинтер.

Igrachka* [n] е декларација на поле од поинтери кон објекти од тип Igrachka.

new
враќа поитер кон меморијата што е алоцирана. Така што поинтерот што ќе го врати new всушност покажува кон
низа од други поинтери.

Значи, kupche содржи адреса на поле. Полето се состои од поинтери. Oвие поинтери содржат адреси на објекти од тип Igrachka.

Pointerception :))))

Пробај да си го објасниш ова со низа од цели броеви за да ти биде поедноставно. Прочитај и за pointers to pointers ако ти треба да правиш нешто посложено.
 
Член од
27 јули 2015
Мислења
16
Поени од реакции
3
Во кодот нема алоцирање низа кон класа. Такво нешто не смее ни да има, компајлерот ќе покаже грешка.

**kupche е двоен поинтер т.е поинтер кон поинтер.

Igrachka* [n] е декларација на поле од поинтери кон објекти од тип Igrachka.
new враќа поитер кон меморијата што е алоцирана. Така што поинтерот што ќе го врати new всушност покажува кон
низа од други поинтери.

Значи, kupche содржи адреса на поле. Полето се состои од поинтери. Oвие поинтери содржат адреси на објекти од тип Igrachka.

Pointerception :))))

Пробај да си го објасниш ова со низа од цели броеви за да ти биде поедноставно. Прочитај и за pointers to pointers ако ти треба да правиш нешто посложено.
Фала ти, мислам дека ми е јасно сега :)
 
Член од
27 јули 2015
Мислења
16
Поени од реакции
3
Ај нид хелп аген :)
Следниот код пример за употреба на преоптоварениот операторот за доделување, но кодот работи и без тој дел од кодот, т.е кода ќе го искоментирам делчето каде што се врши преоптоварувањето на операторот пак се нормално функционира. Знае ли некој зошто? :)

#include<iostream>usingnamespace std;

classDistance{
private:
int feet; // 0 to infiniteint inches;
// 0 to 12public:// required
constructorsDistance(){
feet =0;
inches =0
;}
Distance(int f,int i)
{
feet = f;
inches = i;}
void operator=(constDistance&D ){
feet = D.feet;
inches = D.inches;}
// method to display distancevoid
displayDistance(){
cout <<"F: "<< feet <<" I:"<< inches << endl;}

};
int main()
{
Distance D1(11,10), D2(5,11);

cout <<"First Distance : ";
D1.displayDistance();
cout <<"Second Distance :";
D2.displayDistance();

// use assignment operator
D1 = D2;
cout <<"First Distance :";
D1.displayDistance();

return0;}
 
Член од
31 август 2008
Мислења
1.853
Поени од реакции
815
Не сум баш сигурен зошто работи ама преоптоварувањето на операторот за доделување нема никаква функција вака како што е напишан. Претпоставувам дека има некој copy constructor кој се повикува при доделување на класи од ист тип. Но не се сеќавам што како, па не тврдам. Прочитај повеќе за конструктори и видови на копирање (Deep и Shallow copying).

void operator=(const Distance& D){
feet = D.feet;
inches = D.inches;
}

Вака операторот не враќа ништо, а ме чуди што компајлерот не ти кажува дека feet и inches не ти се декларирани со оглед на тоа дека оптеретувањето се случува надвор од класата каде што се декларирани.

Тука се користи keyword-от this кој го враќа самиот објект кој би се креирал. Пример:

Вака има некоја логика иако може да не најдобро или најточно решение, операторот враќа рефернца кон објектот кој му е од левата страна.

Distance& operator=(const Distance& D){

this->feet = D.feet;
this->inches = D.inches;

return *this;
};
 

Kajgana Shop

На врв Bottom