Регистрирайте се
Предишната тема :: Следващата тема |
Автор |
Съобщение |
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Mon Nov 16, 2009 9:56 pm Заглавие: Много моля за помощ |
|
|
Извинявам се, знам, че не е това мястото, но имам проблем с едни задачи по Информатика и ви моля за помощ, тъй като бях болен и съм изпуснал малко от материала. Писах в раздела за Информатика, но там никой не ми обръща внимание. Затова, ви моля за извинение отново, че не е тук мястото, но ако някой знае да пише задачи на DEV C++, моля да ми помогне.
А ето и задачите:
Задача E1. Акробат
В някои спортове, като гимнастика, акробатика, ски-скокове и др., изпълнението на всеки спортист се оценява от няколко съдии. След това от всички оценки се премахват най-ниската и най-високата, а от останалите оценки се пресмята окончателната оценка за изпълнение по следния начин – сумата на оценките се разделя на техния брой. Съдиите гласуват така, че крайната оценка е винаги цяло число. Ако максимална или минимална оценка са поставили няколко съдии, то отпада само една от тях.
Напишете програма acrobat, която въвежда оценките a, b, c, d, e, f (a, b, c, d, e, f са цели числа), които поставят шест съдии, намира и отпечатва крайната оценка, която получава всеки спортист.
Вход
От първия ред на стандартния вход се въвеждат стойностите на числата a, b, c, d, e, f, разделени с по един интервал.
Изход
На един ред на стандартния изход програмата трябва да изведе едно цяло число, равно на търсената оценка за изпълнение.
Ограничения
1 ≤ a, b, c, d, e, f ≤ 1000000000000
Пример
Вход Изход
36 24 72 8 10 22 23
Задача E2. Победител
Умко и Сръчко са неразделни приятели. Едно любимо тяхно забавление са игрите. Новата игра, която им подарили техните родители, се състои от карти. На всяка една от тях има написани трицифрени числа. Картите се обръщат така, че играчите да не виждат числата, разбъркват се и от купчината се изтегля произволна карта. Умко и Сръчко виждат числото написано на нея и по зададените в играта правила трябва да образуват ново трицифрено число. Играта печели този от тях, който познае числото пръв.
И така, правилата на играта са следните:
• Играчите събират стотиците и десетиците на числото от картата. Ако резултатът е двуцифрено число, тогава отново събират цифрите му. Получената цифра се записва като първа за новото число;
• Играчите трябва да разпознаят дали цифрата на единиците на числото написано на картата е четно число. Ако то е четно, тогава го удвояват. Ако е нечетно, тогава към него прибавят цифрата на десетиците на числото от картата. Полученият резултат е число, десетиците и единиците на което са втората и третата цифра на новото число.
Понеже Умко бил по-умен и почти винаги бил победител в подобни игри, помогнете на Сръчко да спечели поне в тази игра, като напишете програма winner.
Вход
На първия ред на стандартния вход се въвежда едно цяло число k – трицифреното число, записано върху изтеглената карта.
Изход
Програмата извежда на единствен ред на стандартния изход едно цяло трицифрено число, което трябва да получи победителят в играта.
Примери
Вход Изход
100 100
387 215
624 808
Задача E3. Щастлив номер
Всеки автомобил има регистрационен номер, който се състои от поредица от осем символа. Първите два и последните два са главни латински букви, а останалите – цифри. Един номер е щастлив, ако произведението от цифрите е равно на сумата от кодовете (ASCII-кодовете) на първите две и последните две букви, разделена целочислено на десет.
Напишете програма lucky, която проверява дали даден номер е щастлив.
Вход
На първият ред от стандартния вход се въвежда поредица от осем знака – две главни латински букви, четири цифри и две главни латински букви.
Изход
На един ред на стандартния изход програмата трябва да изведе Yes и произведението от цифрите, разделени с един интервал, ако номера е щастлив и No, в противен случай.
Примери
Вход Изход
AH2131АА No
AF4171QA Yes 28
Това са задачи от 8 Национален есенен турнир по Информатика и Информационни технологии "Джон Атанасов" Шумен 29.11.2008 |
|
Върнете се в началото |
|
|
Реклама
|
Пуснато на: Заглавие: Реклама |
|
|
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Mon Nov 16, 2009 10:13 pm Заглавие: |
|
|
Е на първа и втора кое те затруднява? |
|
Върнете се в началото |
|
|
krainik Фен на форума
Регистриран на: 01 May 2009 Мнения: 697
гласове: 44
|
Пуснато на: Mon Nov 16, 2009 10:18 pm Заглавие: |
|
|
Мартине, не бъди толкова лош - задачите са за пети клас Утре ще ти разпиша решенията, ако не забравя. 10 клас съм, а пък се занимавам със задачи за 5 клас - ужас |
|
Върнете се в началото |
|
|
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Mon Nov 16, 2009 10:22 pm Заглавие: |
|
|
#include <iostream>
using namespace std;
int main ()
{
int a,b,c,d,e,f,min,max,chislo;
cin>>a>>b>>c>>d>>e>>f;
if(a<b,c,d,e,f)
{
swap=a;
a=min;
min=swap;
}
else if(b<a,c,d,e,f)
{
swap=b;
b=min;
min=swap;
}
else if(c<a,b,d,e,f)
{
swap=c;
c=min;
min=swap;
}
else if(d<a,b,c,e,f)
{
swap=d;
d=min;
min=swap;
}
else if(e<a,b,c,d,f)
{
swap=e;
e=min;
min=swap;
}
else if(f<a,b,c,d,e)
{
swap=f;
f=min;
min=swap;
}
if(a>b,c,d,e,f)
{
swap=a;
a=max;
max=swap;
}
else if(b>a,c,d,e,f)
{
swap=b;
b=max;
max=swap;
}
else if(c>a,b,d,e,f)
{
swap=c;
c=max;
max=swap;
}
else if(d>a,b,c,e,f)
{
swap=d;
d=max;
max=swap;
}
else if(e>a,b,c,d,f)
{
swap=e;
e=max;
max=swap;
}
else if(f>a,b,c,d,e)
{
swap=f;
f=max;
max=swap;
}
chislo=(a+b+c+d+e+f)/4;
cout<<chislo<<endl;
system ("pause");
return 0;
}
Това е на първа задача. Пише, че има грешка на девети ред.
#include <iostream>
using namespace std;
int main ()
{
int k,stot,des,ed,k_a,stot_a,des_a,ed_a,sbor,des_b,ed_b,sbor_a,pr,des_c,ed_c,sbor_b,des_d,ed_d,swap;
cin>>k;
k=stot*100+des*10+ed;
stot=k/100;
des=k/10%10;
ed=k%10;
sbor=stot+des;
des_b=sbor/10;
ed_b=sbor%10;
sbor_a=des_b+ed_b;
if(sbor/10!=0)
{
swap=sbor;
sbor=sbor_a;
sbor_a=swap;
}
swap=sbor;
sbor=stot_a;
stot_a=swap;
pr=ed*2;
des_c=pr/10;
ed_c=pr%10;
sbor_b=ed+des;
des_d=sbor_b/10;
ed_d=sbor_b%10;
if(ed%2=0)
{
swap=des_c;
des_c=des_a;
des_a=swap;
swap=ed_c;
ed_c=ed_a;
ed_a=swap;
}
else
{
swap=des_d;
des_d=des_a;
des_a=swap;
swap=ed_d;
ed_d=ed_a;
ed_a=swap;
}
k_a=stot_a*100+des_a*10+ed_a
cout<<k_a<<endl;
system ("pause");
return 0;
}
На втора задача. Грешката е в тридесети ред.
Последната промяна е направена от dynata на Mon Nov 16, 2009 10:45 pm; мнението е било променяно общо 1 път |
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Mon Nov 16, 2009 10:32 pm Заглавие: |
|
|
И в двете задачи не си дефинирал swap
Иначе доста дълъг метод(не сте ли учили цикъл for? )
Освен това мисля, че подходът ти chislo = (a+b+c+d+e+f)/4 не е правилен
В условието пише, че се вадят максимална и минимална оценка, така че трябва от сборът a+b+c+d+e+f да извадиш минималното и максималното число и чак след това да разделиш резултата на 4.
Сега обаче като ти гледам логиката на сравнение изобщо май не е вярна Пробвай така
слагаш МАХ=а, после сравняваш МАХ с b,c,d,e,f, като за МАХ запазваш по-голямото число. накрая имаш МАХ - най-големият елемент. по същия начин за МIN
За втората задача май си я копирал същата...
Последната промяна е направена от martosss на Mon Nov 16, 2009 10:38 pm; мнението е било променяно общо 1 път |
|
Върнете се в началото |
|
|
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Mon Nov 16, 2009 10:37 pm Заглавие: |
|
|
Първата задача стана. Благодаря ти много!!! А за втората не те разбрах. Ще помисля малко и ще пиша какво е родил моя мозък.
Едит:На втора задача съм дефинирал swap(дефинирането беше онова със int, нали). Явно не е там грешката.
Едит2:Едитвам.
Поправих го. |
|
Върнете се в началото |
|
|
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Mon Nov 16, 2009 11:03 pm Заглавие: |
|
|
Оправих го. Но на този source(долу) излиза, че няма грешки, но вместо искания изход(23) излиза 27. На първа задача.
#include <iostream>
using namespace std;
int main ()
{
int a,b,c,d,e,f,min,max,chislo,swap;
cin>>a>>b>>c>>d>>e>>f;
swap=a;
a=max;
max=swap;
if(max<b)
{
swap=b;
b=max;
max=swap;
}
if(max<c)
{
swap=c;
c=max;
max=swap;
}
if(max<d)
{
swap=d;
d=max;
max=swap;
}
if(max<e)
{
swap=e;
e=max;
max=swap;
}
if(max<f)
{
swap=f;
f=max;
max=swap;
}
swap=b;
b=min;
min=swap;
if(min<a)
{
swap=a;
a=min;
min=swap;
}
if(min<c)
{
swap=c;
c=min;
min=swap;
}
if(min<d)
{
swap=d;
d=min;
min=swap;
}
if(min<e)
{
swap=e;
e=min;
min=swap;
}
if(min<f)
{
swap=f;
f=min;
min=swap;
}
chislo=(a+b+c+d+e+f)/4;
cout<<chislo<<endl;
system ("pause");
return 0;
} |
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Mon Nov 16, 2009 11:45 pm Заглавие: |
|
|
Пробвай с това, дано да стане За мен основната уловка тук е, че тези числа са <1 000 000 000, тоест трябва да ги дефинираш като "големи", тоест long unsigned(така хващаш от 1 до 4 милиарда и кусур)
Ще е добре също така да добавиш проверка дали тези числа изпълняват условието(защото може да ти въведа отрицателни числа и тогава ще се чудиш какво става )
Код: | #include <iostream>
using namespace std;
int main ()
{
long unsigned int a,b,c,d,e,f,min,max,chislo;//4islata moje da sa mnogo golemi - do 4 miliarda
cin>>a>>b>>c>>d>>e>>f;
max=a;//slaga6 max i min da sa purvoto i sravnqva6 s ostanalite
min=a;//vse edno ot tqx 6te e po-golqmo ot vsi4ki ostanali
if(max<b) max=b;
if(max<c) max=c;
if(max<d) max=d;
if(max<e) max=e;
if(max<f) max=f;
if(min>b) min=b;
if(min>c) min=c;
if(min>d) min=d;
if(min>e) min=e;
if(min>f) min=f;
chislo=(a+b+c+d+e+f-min-max)/4;//nakraq ot vsi4kite vadim min i max i delim na broq im
cout<<chislo<<endl;//moje6 i napravo da pi6e6 cout<<(...)/4, bez otdelna promenliva :)
system ("pause");
return 0;
}
|
|
|
Върнете се в началото |
|
|
Baronov Напреднал
Регистриран на: 05 Jun 2008 Мнения: 316
гласове: 39
|
Пуснато на: Tue Nov 17, 2009 1:44 am Заглавие: |
|
|
martosss написа: | Пробвай с това, дано да стане За мен основната уловка тук е, че тези числа са <1 000 000 000, тоест трябва да ги дефинираш като "големи", тоест long unsigned(така хващаш от 1 до 4 милиарда и кусур)
|
В int можеш да пазиш числа до (малко над) 2 милиарда.
long (разбира се, в С++ е long long или int64 в зависимост от компилатора) пази числа до [tex]10^{18}[/tex]. |
|
Върнете се в началото |
|
|
Baronov Напреднал
Регистриран на: 05 Jun 2008 Мнения: 316
гласове: 39
|
Пуснато на: Tue Nov 17, 2009 1:58 am Заглавие: |
|
|
E2:
Код: |
#include<stdio.h>
int main() {
int k;
scanf("%d", &k);
int a = k%10;
k /= 10;
int b = k%10;
k /= 10;
int c = k%10;
int d = b + c;
if (d > 10) {
d -= 9;
}
int e = 0;
if (a%2 == 0) {
e = 2*a;
}else {
e = a + b;
}
if (e >= 10) {
printf("%d%d\n", d, e);
}else {
printf("%d0%d\n",d, e);
}
return 0;
}
|
|
|
Върнете се в началото |
|
|
Baronov Напреднал
Регистриран на: 05 Jun 2008 Мнения: 316
гласове: 39
|
Пуснато на: Tue Nov 17, 2009 2:06 am Заглавие: |
|
|
E3:
Код: |
#include<stdio.h>
int main() {
char s[9];
scanf("%s", &s);
int prod = (s[2] - '0')*(s[3] - '0')*(s[4] - '0')*(s[5] - '0');
int sum = (s[0] + s[1] + s[6] + s[7])/10;
if (prod == sum) {
printf("Yes %d\n", prod);
} else {
printf("No\n");
}
return 0;
}
|
|
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Tue Nov 17, 2009 11:20 am Заглавие: |
|
|
Baronov написа: | martosss написа: | Пробвай с това, дано да стане За мен основната уловка тук е, че тези числа са <1 000 000 000, тоест трябва да ги дефинираш като "големи", тоест long unsigned(така хващаш от 1 до 4 милиарда и кусур)
|
В int можеш да пазиш числа до (малко над) 2 милиарда.
long (разбира се, в С++ е long long или int64 в зависимост от компилатора) пази числа до [tex]10^{18}[/tex]. |
Хах това не го знаех, тука в един учебник пише за Borland C++ и Turbo C++, че допустимите стойности са им други, явно не е вярно |
|
Върнете се в началото |
|
|
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Tue Nov 17, 2009 3:22 pm Заглавие: |
|
|
Baronov, ако можеш да напишеш решенията малко по-простичко, защото голяма част от написаното не съм го учил.
martosss, благодаря. |
|
Върнете се в началото |
|
|
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Tue Nov 17, 2009 6:35 pm Заглавие: |
|
|
martosss, ще ми помогнеш ли за втора и трета задача? |
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Tue Nov 17, 2009 8:28 pm Заглавие: |
|
|
Baronov написа: | E2:
Код: |
#include<stdio.h>
int main() {
int k;
cin>>k; //scanf("%d", &k);
int a = k%10;
k /= 10;
int b = k%10;
k /= 10;
int c = k%10;
int d = b + c;
if (d > 10) {
d -= 9;
}
int e = 0;
if (a%2 == 0) {
e = 2*a;
}else {
e = a + b;
}
if (e >= 10) {
cout<<d<<e<<"\n"; //printf("%d%d\n", d, e);
}else {
cout<<d<<e<<"\n"; printf("%d0%d\n",d, e);
}
return 0;
}
|
|
Би трявало това да е вариантът на baronov, кажи сега разбираш ли всичко |
|
Върнете се в началото |
|
|
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Tue Nov 17, 2009 10:01 pm Заглавие: |
|
|
printf, scanf и stdio.h не съм ги учил. |
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Tue Nov 17, 2009 10:27 pm Заглавие: |
|
|
е принт - печатам, демек cout, scanf - сканирам, демек cin... stdio.h логично да е библиотеката, с която се декларират тези функции както и да е, вместо това четеш cout и cin Лошото е, че на някои от тестовете с програмата на баронов ми изяжда нулите :S |
|
Върнете се в началото |
|
|
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Wed Nov 18, 2009 5:58 pm Заглавие: |
|
|
Какво означава
k /= 10
и
d - = 9 ??? |
|
Върнете се в началото |
|
|
martosss VIP Gold
Регистриран на: 17 Mar 2007 Мнения: 3937 Местожителство: Somewhere over the rainbow гласове: 213
|
Пуснато на: Wed Nov 18, 2009 9:22 pm Заглавие: |
|
|
k=k/10 и d=d-9 |
|
Върнете се в началото |
|
|
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Mon Nov 23, 2009 4:19 pm Заглавие: |
|
|
Задача1. Детайли
В едно предприятие се произвеждат три изделия i1, i2 и i3, като за тях са необходими детайлите d1 и d2 в следните количества: за изделието i1 – само 2 детайла d1, за изделието i2 – 4 детайла d2, за i3 – 5 детайла d1 и 4 детайла d2. Да се състави програма DETAILS.CPP, която по номера на дадено изделие и налични количестава от детайлите определя колко броя от това изделие могат да се произведат.
Примерен вход: 1 12 14
Примерен изход: 6
Примерен вход: 3 18 30
Примерен изход: 3
Като напиша първия примерен вход ми изкарва 6, но на втория ми вади грешно число.
Ето сорса ми:
#include <iostream>
using namespace std;
int main ()
{
int d1,d2,a,n,h;
cin>>a>>d1>>d2;
int otg1=d1/2;
int otg2=d2/4;
int x=d1/5;
h==otg2;
if(x>h)h=n;
else x=n;
switch(a)
{
case 1:cout<<otg1<<endl;break;
case 2:cout<<otg2<<endl;break;
case 3:cout<<n<<endl;break;
}
system ("pause");
return 0;
} |
|
Върнете се в началото |
|
|
_sssss Фен на форума
Регистриран на: 07 Dec 2008 Мнения: 633
гласове: 50
|
Пуснато на: Mon Nov 23, 2009 5:00 pm Заглавие: |
|
|
Добре си се ориентирал, че n=min(h, x), но бъркаш записа. Пишеш h=n или x=n, а трябва n=h или n=x! |
|
Върнете се в началото |
|
|
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Mon Nov 23, 2009 5:14 pm Заглавие: |
|
|
Задача3.Лица.
Да се състави програма AREA.CPP, която въвежда от клавиатурата дробно число а и цяло число х, като ако х=1, извежда периметъра на равностарнен триъгълник със страна а. Ако х=2 - лицето на квадрат със страна а и ако х=3 – лицето на кръг с радиус а.
Примерен вход: 3 1
Примерен изход: 9
Примерен вход: 5.2 2
Примерен изход: 27.04
Задачата я решавам, но малко мамя . Моя сорс:
#include <iostream>
using namespace std;
int main ()
{
double a,x,P,S1,S2;
cin>>a>>x;
P=a*3;
S1=a*a;
S2=3.14*a*a;
if(x=1)cout<<S1<<endl;
else if(x=2)cout<<P<<endl;
else if(x=3)cout<<S2<<endl;
system ("pause");
return 0;
}
А би трябвало да е така:
#include <iostream>
using namespace std;
int main ()
{
double a,x,P,S1,S2;
cin>>a>>x;
P=a*3;
S1=a*a;
S2=3.14*a*a;
if(x==1)cout<<P<<endl;
else if(x==2)cout<<S1<<endl;
else if(x==3)cout<<S2<<endl;
system ("pause");
return 0;
}
Къде бъркам на втория сорс???
ПП Разбрах къде ми е грешката. Мерси за помощта.
Последната промяна е направена от dynata на Mon Nov 23, 2009 6:49 pm; мнението е било променяно общо 3 пъти |
|
Върнете се в началото |
|
|
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Mon Nov 23, 2009 6:45 pm Заглавие: |
|
|
Задача4.
Тухла (ПТИ-2002) Тухла с правилна форма има дължина x см, ширина y см и височина z см. Тези размери са числа и не са по-големи от 1000 см. Напишете програма brick.exe, която въвежда числата x, y и z от клавиатурата и извежда на екрана едно число, равно на минималната площ в кв. см., която трябва да се изреже от ламаринен лист така, че през получената дупка да може да мине тухла.
Къде ми е грешката в този сорс:
#include <iostream>
using namespace std;
int main ()
{
int x,y,z,min,max,min2,otg,pr;
cin>>x>>y>>z;
min=x;
max=x;
if(min>y)min=y;
else if(min>z)min=z;
if(max<y)max=y;
else if(max<z)max=z;
if(min<x<max)min2=x;
else if(min<y<max)min2=y;
else if(min<z<max)min2=z;
pr=min*min2;
cout<<pr<<endl;
system ("pause");
return 0;
} |
|
Върнете се в началото |
|
|
_sssss Фен на форума
Регистриран на: 07 Dec 2008 Мнения: 633
гласове: 50
|
Пуснато на: Mon Nov 23, 2009 8:03 pm Заглавие: |
|
|
Дай по-кратко, де.
Различните стени на тухлата са S1=xy; S2=zy; S3=xz;
Сега просто проверяваш коя е най-малка по площ.
PS. По-добре пускай нови теми, че така е много наблъскано. |
|
Върнете се в началото |
|
|
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Mon Nov 23, 2009 8:38 pm Заглавие: |
|
|
Много благодаря за отзива!!! |
|
Върнете се в началото |
|
|
dynata Начинаещ
Регистриран на: 13 Dec 2008 Мнения: 55 Местожителство: Пловдив
|
Пуснато на: Tue Nov 24, 2009 8:58 pm Заглавие: |
|
|
Задача E1. ЛИНИЙКА
Върху линийка с дължина 100000 см са нанесени деления през 1см. Деленията на линийката са номерирани с поредни числа, като в началото и е записано числото 0. Талантливчо поставил върху линийката три летвички, които изработил в часовете по труд и техника. Всяка летвичка поставял на произволно деление и записвал края и дължината й. Да се напише програма RULER, която извежда началото на тази летвичка, което се намира най-близко до началото на линийката.
Вход:
На първите три реда от стандартния вход се въвеждат по две цели числа, разделени с интервал – дължината и края на всяка от летвичките..
Изход
Програмата да изведе цяло число, което показва началото на летвичката, която се намира най-близко до началото на линийката.
Ограничения
Въведените числа са не по-големи от 100000 и не по-малки от 1.
ПРИМЕР
Вход
3 9
8 12
6 15
Изход
4
Къде греша:
#include <iostream>
using namespace std;
int main ()
{
int duljina1,duljina2,duljina3,krai1,krai2,krai3,nachalo1,nachalo2,nachalo3;
cin>>duljina1>>krai1>>duljina2>>krai2>>duljina3>>krai3;
nachalo1=krai1-duljina1;
nachalo2=krai2-duljina2;
nachalo3=krai3-duljina3;
int otg=0;
if(nachalo1<nachalo2,nachalo3)otg+=nachalo1;
if(nachalo2<nachalo1,nachalo3)otg+=nachalo2;
if(nachalo3<nachalo1,nachalo2)otg+=nachalo3;
cout<<otg<<endl;
system ("pause");
return 0;
} |
|
Върнете се в началото |
|
|
garion Напреднал
Регистриран на: 10 Jan 2008 Мнения: 373
гласове: 13
|
Пуснато на: Wed Nov 25, 2009 3:44 pm Заглавие: |
|
|
martosss написа: | Baronov написа: | martosss написа: | Пробвай с това, дано да стане За мен основната уловка тук е, че тези числа са <1 000 000 000, тоест трябва да ги дефинираш като "големи", тоест long unsigned(така хващаш от 1 до 4 милиарда и кусур)
|
В int можеш да пазиш числа до (малко над) 2 милиарда.
long (разбира се, в С++ е long long или int64 в зависимост от компилатора) пази числа до [tex]10^{18}[/tex]. |
Хах това не го знаех, тука в един учебник пише за Borland C++ и Turbo C++, че допустимите стойности са им други, явно не е вярно |
допустимите им стойности зависят от компилатора и от операционната система, така че това което си прочел най-вероятно е било вярно но само за тези 2 компилатора и при определена операционна система. |
|
Върнете се в началото |
|
|
|
|
Не Можете да пускате нови теми Не Можете да отговаряте на темите Не Можете да променяте съобщенията си Не Можете да изтривате съобщенията си Не Можете да гласувате в анкети Може да прикачвате файлове Може да сваляте файлове от този форум
|
|