Если не ошибаюсь, то округляется тогда, когда после точки идет число больше 5. Извиняюсь, если не прав
А почему while? Вроде бы это повтор кода пока условие исполняется... Не будет ли этот цикл бесконечным?
Ну что-то вроде "Выполнять какой-нибудь кусок кода, пока числа не будут введены верно".Хотя, признаться честно, я твой код смотрел по диагонали )))
Code: do { int a, b, c; std::cout << "Введите первое число \n"; std::cin >> a; std::cout << "Введите второе число \n"; std::cin >> b; c=a+b; if(a!=0 && b!=0) { std::cout << "Сумма a и b ="; std::cout << c; } else { std::cout << "Какое-то из чисел равно нулю! Введите другие числа!"; } }while(a==0 && b==0) попробуй так)
Объявления переменных a, b, c вынести за пределы цикла. И в условии цикла заменить && на ||. Не путайте людей, изучающих С++ второй день ))
очередное горе, желающее, чтобы программа выполнялась за 0.00001с а не за 0.00005с. Мне лень вразумлять о преждевременной оптимизации, о том, что пишется код не для компьютера, а для программиста, и о прочих деталях пром кодинга, а не коленочного под пиво. Читайте книжки, или кодьте на асме. С++ сделали не для переписывания на нем си программ. Когда поймете, почему делают новые языки, такие как C++, Java, C#, тогда велкам.
А мне лень вразумлять о том, что человек, ИЗУЧАЮЩИЙ С++, должен знать о более оптимальных алгоритмах и приёмах. По-моему преимущество С++, заключающееся в возможности доступа к аппаратным средствам на уровне языка ассемблера, ещё никто не отменял. Иначе, может быть есть смысл фигачить кучи "высокоуровневых" программ на Delphi? Человек ИЗУЧАЕТ С++. Вдумайтесь в смысл этих слов. Я вот сейчас очень доволен тем, что мои преподаватели по программированию не стали с ранних курсов загружать меня классами и объектами, а начали с самых основ. К тому же, раз уж Вы заговорили о том, что С++ создан для облегчения жизни программисту, заявлю: метки только ухудшают понимание программы! Размывают чёткий алгоритм и структуру! А про оптимизацию, товарищ, я даже и не заикнулся. [Life], таких как Вы послушать, так зарезервированных слов, как оказывается, не стоит знать и понимать. "Главное - классы! Рабочие классы, батенька!"
1. Скажите что хранит переменная а int& a=b; а ссылается на б,но что хранит а? Адрес? Вроде нет... 2. Show (int& a) { ... } что поступает на вход в функцию? Адрес а? Копия значения? Непойму никак... 3. Написано что нельзя сравнивать значения ссылой,а как же быть если это надо сделать? 4. Зачем придуманны ссылки когда есть указатели? 5. Если массив передается как аргумент в функцию ,то он передается по ссылке или передается адрес первого элемента?
Указатель - это адрес памяти, если переходить на делетанский язык. А ссылки - это, так сказать, псевдонимы. Используются, в основном, для передачи в функции вместо указателей. Т.е., а будет хранить 1, как и б. Отсюда и отталкиваетесь. Книга Б.Страуструпа по С++ в помощь. Супер-вещь!
жжоте товарищи. первое - цитата моя. несколькими страницами раньше написана, и для другого контекста. второе - тут классы просто некуда приписать, так что все herfleisch подсказывал правильно. третье - ставьте копирайты етиж их налево Krist_ALL 1 - ссылку на b. по сути типа указатель на блок памяти переменной b. только читать a можно без разыменовывания. вот и вся разница. т.е. пишем a = 1 => b тоже = 1. пишем b = 5 => a тоже равно 5 2 - аналогично с первым случаем. адрес переменной, с которым можно работать без * и ->. 3 - Code: int main(){ int a = 5; int b = 7; int &c = a; int &d = b; cout << ((c == a) ? "true\n" : "false\n"); } 4 - для удобства. постепенно поймешь, когда придется писать много кода с классами. со ссылкой тебе не нужно держать в памяти какая переменная указатель, а какая ссылка. везде ставишь точку и все. ну и как параметр, в который возвращает функция знчение используется. когда функция должна вернуть больше одной величины. 5 - массив передается по умолчанию как указатель. можно передать массив по ссылке. не соединения а объединения. юзаются весьма редко.
4. Какую точку ставить?О.О а чем отличается s(char a[]) { ... } и s(char* a[]) { ...} ? Второй код писать когда из функции я буду изменять массив? Тогда надо передать массив так s(&a) да? Или.. Вообще написано что если в функцию передан массив ,то когда в функции делается ++ ,то с++ просто сдвигает на нужную ячейку и все. => в функцию передается адрес начала массива. Когда массив из цифр,то чтоб передать массив в функцию,надо еще и передать ск элементов в нем,а когда массив чар из букв,то не нада размер т.К. Функция определит конец по нул байту.. Блин ппц с этими указателями.. После пхп с++ оч сложно учить.
не на том внимание заостряешь. массивы по ссылке передавать смысл есть только если тебе нужно в переменную вернуть массив. вообще используют std::vector, чтобы нагляднее все было. s(char a[]) { ... } и s(char* a[]) { ...} ты итак итак можешь изменить массив, потому что передаешь указатель на него. но вторая запись не эквивалентна первой. во втором случае ты передаешь двумерный массив. в этом реальный напряг с++. ибо в принципе это и двумерный массив, и передача указателя на адрес, хранящий одномерный массив. т.е. этот код может значить то, о чем думал программист, а не то, о чем нам говорит язык. собсно поэтому тут лучше использовать ссылку. чтобы видеть одномерный массив, переданный по ссылке, а не думерный массив. по поводу инкремента и прочего - вот кто тебе мешает сделать проект и проверить все глазами и руками. делаешь массив. передаешь его в функцию. там инкрементишь. выходишь из функции и смотришь, изменилось ли значение исходной переменной, которую передал. Code: void s(char* a){ a++; *a = '_'; } void s2(char* &a){ a++; // очень плохо ибо delete не сработает -> утечка памяти *a = '_'; } void s3(char* &a){ delete [] a; // иначе утечка памяти a = new char [strlen("foobar") + 1]; strcpy(a, "foobar"); } int main(){ char* a = new char [5]; strcpy(a, "test"); s3(a); cout << a; } PS: для уменьшения бардака есть такое слово как typedef. Определив char* как pchar ты упростишь читаемость кода. s(pchar &a) - ссылка на массив символов
не, по асе не консультирую. ибо вместо того, чтобы попробовать учиться, писать код, компилить, наблюдать за работой, понимать, предпочитают сразу спрашивать. в этом плане форум самое то. я те пример кода привел. бери его и дебаж до просветления. будут доп вопросы по поводу конкретного кода - пиши на форум.