Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Помощ за задачи на C/C++ (merged)


Препоръчан отговор

ДОколкото разбрах въпроса е да се намери сумата на двете най-големи. Което просто се разбива на две задачи: намиране на двете най-големи и събирането им

Аха  може да съм се подвел защото питащия казва: Дадени са три числа и т.н

Линк към коментара
Сподели в други сайтове

Аха  може да съм се подвел защото питащия казва: Дадени са три числа и т.н

Да, и в конкретния случай може да се подходи по диаметрално противоположния подход: намира се най-малкото и се събират другите две :)

Линк към коментара
Сподели в други сайтове

Да, и в конкретния случай може да се подходи по диаметрално противоположния подход: намира се най-малкото и се събират другите две :)

Чрез std::min_element или масив ?Смисъл ако са 100 числа.

Линк към коментара
Сподели в други сайтове

Не че сам неблагодарен но никой не каза каде е грешката в кода че компилаторът не ми го рънва;]

Незнам нито каза каква е грешката нито нищо.Ще ме караш да уча C++ :)

 

 

#include <iostream>using namespace std;int main (){	    int a, b;	    int c;	    a = 10;	    b = 20;	    c = a + b;	    cout << c << endl ;	    return 0;} 

 

 

Линк към коментара
Сподели в други сайтове

Не че сам неблагодарен но никой не каза каде е грешката в кода че компилаторът не ми го рънва;]

 

И аз тръгнах да се чудя какъв ти е проблемът, имайки предвид, че алгоритъмът ти е правилен(въпреки, че не и универсален). Но първо да ти цитирам един програмист:

 

Дееба... чувствам се все едно обяснявам на майка ми как да си отвори пощата

"не работи"

WTF?!?!? к'во значи че не работи?

Не ти се компилира, дава ти грешка, вади ти грешни резултати, компютърът ти се изключва като го напишеш или на целия квартал му спира тока?

Stilgar

 

Та, к'во значи „не рънва“? Щото на мен ми го „рънва“ без дертове.

 

Публикувано изображение

 

Единствената разлика м/у моя и твоя код е т'ва system("pause") е, ако грешката ти е „error: 'system' was not declared in this scope“(или нещо подобно), то не си включил библиотеката cstdlib. Пък и 'що ти е въобще system("pause")? Не мен ми се чини, че е безсмислено, ама някой по-навътре в Цъ++ да каже със сигурност.

#include <iostream>using namespace std;int main (){	    int a, b;	    int c;	    a = 10;	    b = 20;	    c = a + b;	    cout << c << endl ;	    return 0;} 

 

Ти пък не си разбрал условието пак. :D

П.П. Забележете оригиналното име на програмата ми. :)

Редактирано от ftpkid (преглед на промените)
Линк към коментара
Сподели в други сайтове

 

И аз тръгнах да се чудя какъв ти е проблемът, имайки предвид, че алгоритъмът ти е правилен(въпреки, че не и универсален). Но първо да ти цитирам един програмист:

Та, к'во значи „не рънва“. Щото на мен ми го „рънва“ без дертове.

 

Публикувано изображение

 

Единствената разлика м/у моя и твоя код е т'ва system("pause") е, ако грешката ти е „error: 'system' was not declared in this scope“(или нещо подобно), то не си включил библиотеката cstdlib. Пък и 'що ти е въобще system("pause")? Не мен ми се чини, че е безсмислено, ама някой по-навътре в Цъ++ да каже със сигурност. 

Ти пък не си разбрал условието пак. :D

П.П. Забележете оригиналното име на програмата ми. :)

Е fuck я fuck :) Само спамим :) Аз как го разбрах ... луда работа :) Щото да се изведе сумата от двете най-големи и аз веднага реших че трябва да се съберат :)

Линк към коментара
Сподели в други сайтове

Здавейте никога не ми се е налагало да пиша на с++ писал сам малко на джава и сам начинаещ затова ще ви помоля за малко помощ за една елементарна програмка която не ми се рънва нещо явно има грешка някъде ако може да кажете къде --->  Дадени са три числа. Да се изведе сумата на двете най-големи от тези три числа.

#include <iostream>

using namespace std;

int main()

{

int a,b,c;

 if(a<b&&a<c) cout<<b+c;

else if(b<c&&b<a) cout<<a+c;

else cout<<a+b;

system("pause");

}

програмата не ти работи защото не си инициализирал променливите с никакви стойности. задай им конкретни стойности и всичко ще е ок

Линк към коментара
Сподели в други сайтове

Здравейте имам нужда от помощ за решаването на една задача на С++ ще съм много благодарна ако някой може да ми помогне благодаря предварително!

Да се напише програма която обработва данните на магазин за дрехи номер на артикул,вид,цена,брой.Конструктор по подразбиране и конструктор с параметри метод за отпечатване на информация на обект от този клас,въвежда информация за 200 обекта от по клас я извежда в обратен ред. :D

 

#include <iostream>
#include <string>
using namespace std;
const int MAX = 200;
class Clothes
{
private:
int articulId;
string type;
double price;
int numberOfArticul;
public:
Clothes()
{
articulId = 0;
type = "";
price = 0;
numberOfArticul = 0;
}
 
Clothes(string type, int articulId, int numberOfArticul,double price)
{
this->type = type;
this->articulId = articulId;
this->numberOfArticul = numberOfArticul;
this->price = price;
}
 
~Clothes()
//tqloto na destructora e prazno zashtoto nqma da se suzdavat promenlivi ot tozi klas s kliuchovata duma [new]
}
 
string GetType()
{
return type;
}
 
int GetArticulId()
{
return articulId;
}
 
int GetNumberOfArticul()
{
return numberOfArticul;
}
 
double GetPrice()
{
return price;
}
 
void SetType(string type)
{
this->type = type;
}
 
void SetArticulId(int articulId)
{
this->articulId = articulId;
}
 
void SetPrice(double price)
{
this->price = price;
}
 
void SetNumberOfArticul(int numberOfArticul)
{
this->numberOfArticul = numberOfArticul;
}
 
friend ostream& operator<<(ostream& out, Clothes &clot)
{
out<<"Type : "<<clot.GetType()<<endl;
out<<"Articul ID : "<<clot.GetArticulId()<<endl;
out<<"Number of articul : "<<clot.GetNumberOfArticul()<<endl;
out<<"Price : "<<clot.GetPrice()<<endl;
return out;
}
 
friend istream& operator>>(istream& in, Clothes &clot)
{
cout<<"Type : ";
string type;
in>>type;
cout<<"Articul ID :";
int id;
in>>id;
clot.SetType(type);
clot.SetArticulId(id);
cout<<"Number of articul : ";
in>>id;
clot.SetNumberOfArticul(id);
double price;
cout<<"Price : ";
in>>price;
clot.SetPrice(price);
return in;
}
};
 
class Store
{
private:
Clothes clothes[MAX];
public:
 
Store()
{
 
}
 
~Store()
{
 
}
 
void Input()
{
for(int i = 0; i < MAX; i++)
cin>>clothes;
}
void Print()
{
for(int i = MAX - 1;  i >= 0; i--)
cout<<clothes<<endl;
}
};
 
void main()
{
Store store;
store.Input();
store.Print();
system("pause");
}
Линк към коментара
Сподели в други сайтове

#include <iostream>
#include <string>
using namespace std;
const int MAX = 200;
class Clothes
{
private:
int articulId;
string type;
double price;
int numberOfArticul;
public:
Clothes()
{
articulId = 0;
type = "";
price = 0;
numberOfArticul = 0;
}
 
Clothes(string type, int articulId, int numberOfArticul,double price)
{
this->type = type;
this->articulId = articulId;
this->numberOfArticul = numberOfArticul;
this->price = price;
}
 
~Clothes()
//tqloto na destructora e prazno zashtoto nqma da se suzdavat promenlivi ot tozi klas s kliuchovata duma [new]
}
 
string GetType()
{
return type;
}
 
int GetArticulId()
{
return articulId;
}
 
int GetNumberOfArticul()
{
return numberOfArticul;
}
 
double GetPrice()
{
return price;
}
 
void SetType(string type)
{
this->type = type;
}
 
void SetArticulId(int articulId)
{
this->articulId = articulId;
}
 
void SetPrice(double price)
{
this->price = price;
}
 
void SetNumberOfArticul(int numberOfArticul)
{
this->numberOfArticul = numberOfArticul;
}
 
friend ostream& operator<<(ostream& out, Clothes &clot)
{
out<<"Type : "<<clot.GetType()<<endl;
out<<"Articul ID : "<<clot.GetArticulId()<<endl;
out<<"Number of articul : "<<clot.GetNumberOfArticul()<<endl;
out<<"Price : "<<clot.GetPrice()<<endl;
return out;
}
 
friend istream& operator>>(istream& in, Clothes &clot)
{
cout<<"Type : ";
string type;
in>>type;
cout<<"Articul ID :";
int id;
in>>id;
clot.SetType(type);
clot.SetArticulId(id);
cout<<"Number of articul : ";
in>>id;
clot.SetNumberOfArticul(id);
double price;
cout<<"Price : ";
in>>price;
clot.SetPrice(price);
return in;
}
};
 
class Store
{
private:
Clothes clothes[MAX];
public:
 
Store()
{
 
}
 
~Store()
{
 
}
 
void Input()
{
for(int i = 0; i < MAX; i++)
cin>>clothes;
}
void Print()
{
for(int i = MAX - 1;  i >= 0; i--)
cout<<clothes<<endl;
}
};
 
void main()
{
Store store;
store.Input();
store.Print();
system("pause");
}

Благодаря ти изключително много!:)

Благодаря ти изключително много! :)

Надявам се да не е първо априлска шега :D Шегувам се!:P

Линк към коментара
Сподели в други сайтове

...

Две забележки:

  • Коментарът в тялото на деструктора не е верен. Може без проблем да си ползваш new за да създаваш обекти от клас, който няма отделно дефиниран деструктор. Такъв деструктор е необходим, само когато конструкторът "заема" някакъв ресурс, който после трябва да се освободи изрично.
  • Тъй като си направил предефинираните оператори "приятели" на класа, директно отпада нуждата да изваждаш на показ данните с get и set методи, тъй като те могат да си ги достъпват без проблем. То това всъщност е и една от идеите на "приятелството".
Линк към коментара
Сподели в други сайтове

Не мога да разбера как работи един рекурсивен алгоритъм :(

#include <stdio.h>const unsigned n = 5;void printRed(unsigned k, unsigned long result){    printf("%lu ", result);   if (k < n) printRed(k + 1, result * 10);   printf("%lu ", result);}int main(void) {printRed(1, 10);printf("n");return 0;}

 

Резултата е: 10, 100, 1000, 10000, 100000, 100000, 10000, 1000, 100, 10

 

Не мога да разбера каква е логиката да изкара числата и в намаляващ ред. След като k стане 5 не трябва ли да приключи извеждането?

Линк към коментара
Сподели в други сайтове

Не мога да разбера каква е логиката да изкара числата и в намаляващ ред. След като k стане 5 не трябва ли да приключи извеждането?

  А принта след рекурсивното извикване къде го забрави? всяко рекурсивно извикване, освен последното ще печата по две стойности - преди и след новото извикване. А те ще са еднакви, защото параметърът result не се променя в контекста на функцията.

Линк към коментара
Сподели в други сайтове

  • 2 седмици по-късно...

Реализирайте програма, в която потребителят въвежда произволен низ, който съдържа букви и числа. Програмата трябва да анализира низа, да извлече числата от него и да изведе тяхната сума на екрана.

Днес ми дадоха алгоритъм, който сбива обратно числата (първия цикъл). Например, ако имам fjksdgls12fsag-32 би трябвало да ми изведе -20, но ако не използвах този алгоритъм, т. е. ако ги сумирах елемент по елемент щеше да ми изведе 2. Проблемът ми е какво да напиша като условие за край на цикъл за самото сумиране. Пробвах while(number), while(1), while(str!=0) и винаги зацикля. Многото библиотеки са понеже писах върху друг код на същата задача.

#include<stdio.h>#include<ctype.h>#include<stdlib.h>#include<math.h>#define SIZE 100int main(){char str[SIZE];int i=0,Sum=0,flag=0,number=0;printf("Put the string in: ");gets(str);while(1){if(str[i]!='0')    {        if((str[i]=='-') && isdigit(str[i+1])>0) flag=1;        while((str[i]>='0') && (str[i]<='9'))        {            number=(number*10)+(str[i]-'0');            i++;        }	        if (flag==1) number=-number;        while(number)	        {            Sum=Sum+number;        }			        }}printf("The sum is %d", Sum);return 0;}

 

 

Линк към коментара
Сподели в други сайтове

Днес ми дадоха алгоритъм, който сбива обратно числата (първия цикъл). Например, ако имам fjksdgls12fsag-32 би трябвало да ми изведе -20, но ако не използвах този алгоритъм, т. е. ако ги сумирах елемент по елемент щеше да ми изведе 2. Проблемът ми е какво да напиша като условие за край на цикъл за самото сумиране. Пробвах while(number), while(1), while(str!=0) и винаги зацикля. Многото библиотеки са понеже писах върху друг код на същата задача.

 

Не ми се мисли каква е логиката на това, но според мен ще си цикли безкрайно

   	 while(number)	        {            Sum=Sum+number;        }
Линк към коментара
Сподели в други сайтове

 

Не ми се мисли каква е логиката на това, но според мен ще си цикли безкрайно

   	 while(number)	        {            Sum=Sum+number;        }

Да цикли безкрайно така. Идеята е полученото число от горния цикъл да го добавя към сумата.

Редактирано от ACCESS DENIED (преглед на промените)
Линк към коментара
Сподели в други сайтове

Да, но ми трябва цикъл, за да прихвана следващото число.

СЛедващото число на следващия цикъл на втория while

Линк към коментара
Сподели в други сайтове

имате 3 while цикъла един в дръг, аз ви предложих да махнете най-вътрешния, а в средния (който става вътрешен след махането) се правят промени в number И просто последния ред от кода е да се сумира

Редактирано от capnemo (преглед на промените)
Линк към коментара
Сподели в други сайтове

имате 3 while цикъла един в дръг, аз ви предложих да махнете най-вътрешния, а в средния (който става вътрешен след махането) се правят промени в number И просто последния ред от кода е да се сумира

Пробвах да вкарам сумирането в първия вътрешен цикъл, но зацикли.

Линк към коментара
Сподели в други сайтове

Пробвах да вкарам сумирането в първия вътрешен цикъл, но зацикли.

Ами външния цикъл е while(1), кога според вас ще спре?

Линк към коментара
Сподели в други сайтове

Трябва ми помощ за една курсова задача по системно програмиране. Пише се на C под linux. Условието е: 

Напишете програма, която открива всички уеб сървъри измежду списък с IP адреси, който е записан във файл и подаден като аргумент на програмата.

 

Дайте идеи за първата част от задачата. И от къде мога да прочета повече по темата?

Редактирано от lubo_wrc (преглед на промените)
Линк към коментара
Сподели в други сайтове

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване