Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
U4_nik
0 / 0 / 0
Регистрация: 12.05.2011
Сообщений: 48
#1

непонимаю почему не работает... - C++

02.10.2011, 13:39. Просмотров 553. Ответов 10
Метки нет (Все метки)

непонимаю почему программа не работает, вот условие:

Написать программу, которая выводит на экран таблицу стоимости, например, яблок в диапазоне от 100 г до 1 кг с шагом 100 г. Ниже приведен рекомендуемый вид экрана программы во время ее работы (данные, введенные пользователем, выделены полужирным шрифтом).

Введите цену одного килограмма и нажмите <Enter> (копейки от рублей отделяйте точкой) -> 16.50


Вес (гр) Cтоимость (руб.)
100 1.65
200 3.30
300 4.95
400 6.60
500 8.25
600 9.90
700 11.55
800 13.20
900 14.85
1000 16.50

вот мой код, исправьте что не так плз:

Код
 #include <stdio.h>
int main() {
int cena, summ = 0;
printf("Vvedite cenu odnogo kg i najmite <Enter> -> ");
scanf("%i", &cena);
for  (int i = 100; i <= 1000; i+=100) {
summ = cena * i / 1000;
printf("Ves(гр)-> %i\tStoimost(руб)-> %1.2f\n", i, summ);
		}
system("PAUSE");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2011, 13:39     непонимаю почему не работает...
Посмотрите здесь:

Непонимаю( - C++
Уважаемые программисты , обращаюсь к вам с просьбой , объяснить мне , как в современном мире пишутся программы , потому что чем дальше я...

почему не работает? - C++
господа почему не правельно работает программа? #include &lt;cstdio&gt; #include&lt;iostream&gt; using namespace std; int main() { ...

Почему не работает - C++
#include &lt;string.h&gt; using namespace std; int main() { string sentence; getline(cin, sentence); string a,...

почему не работает? - C++
Комплексное число. Заданы действительная и мнимая части комплексного числа z = х+iy. Преобразовать его в тригонометрическую форму и...

почему не работает? - C++
решил по практиковаться с выделением динамической памяти: почему не работает код: #include &lt;iostream&gt; using namespace std; int...

Почему не работает? - C++
Почему не работет программа? #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;ctime&gt; #define N 10 ...

Почему не работает??? - C++
Прога должна считать количество нулевых элементов, и элементов в диапазоне от 7 до 10. А на экран выводится какие-то отрицательные...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.10.2011, 07:31     непонимаю почему не работает... #2
C
1
2
3
4
5
    float cena, summ = 0.0;
 
...
 
    scanf("%f", &cena);
-=ЮрА=-
Заблокирован
Автор FAQ
03.10.2011, 09:22     непонимаю почему не работает... #3
Цитата Сообщение от U4_nik Посмотреть сообщение
system("PAUSE");
- на сколько помню этой функции в stdio нет

Добавлено через 1 минуту
Цитата Сообщение от U4_nik Посмотреть сообщение
int cena
- цену лучше числом с плавающей точкой делать, где вы видели круглые цены без копеек (это редкость)

Добавлено через 1 минуту
Цитата Сообщение от U4_nik Посмотреть сообщение
summ = cena * i / 1000;
- потому и сумма что накапливает, а вы расчёт на каждой итерации делаете...
ValeryLaptev
Эксперт С++
1039 / 818 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
03.10.2011, 09:22     непонимаю почему не работает... #4
-=ЮрА=-, в студии по умолчанию подцепляется нужная библиотека. А вот МинГВ требует явного указания.
-=ЮрА=-
Заблокирован
Автор FAQ
03.10.2011, 09:28     непонимаю почему не работает... #5
Подправил
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <conio.h>
int main() 
{
    double cena = 0, summ = 0;
    printf("Vvedite cenu odnogo kg i najmite <Enter> -> ");
    scanf("%lf", &cena);
    printf("Ves(grn) Stoimost(rub)\r\n");
    summ = cena*0.1;//Цена 0,1 кг яблок, на каждой итерации просто её увеличиваем ++
    for  (int i = 1; i <= 10; i++,summ++) 
        printf("%d %.2f\n", i*100, summ);
    
    printf("Press any key to continue\r\n");           
    getch();//system("PAUSE");
    return 0;
}
Миниатюры
непонимаю почему не работает...  
-=ЮрА=-
Заблокирован
Автор FAQ
03.10.2011, 09:37     непонимаю почему не работает... #6
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
-=ЮрА=-, в студии по умолчанию подцепляется нужная библиотека.
- в старых версиях (а скорее всего ТС именно в старой версии работает), для систем нужен stdlib.h

Добавлено через 1 минуту
U4_nik, немного ещё сверх алгоритма
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
printf("Ves(grn) Stoimost(rub)\r\n");
- печатайте шапку таблицы а в цикле выводите данные (каждый раз писать Вес и стоимость на мой взгляд не рационально)

Добавлено через 14 секунд
U4_nik, немного ещё сверх алгоритма
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
printf("Ves(grn) Stoimost(rub)\r\n");
- печатайте шапку таблицы а в цикле выводите данные (каждый раз писать Вес и стоимость на мой взгляд не рационально)

Добавлено через 1 минуту
Далее, избегайте огромных счётчиков в цикле, также в цикле тип счётчика не обязательно int

Добавлено через 1 минуту
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
%.2f
- зачем указывать в спецификаторе вывода число цифр до запятой(вы наперёд не знаете сколько оновных разрядов вам нужно, ограничивайте лишь число разрядов после запятой)

Добавлено через 1 минуту
Цитата Сообщение от U4_nik Посмотреть сообщение
гр
- руссификация консоли требует специальных средств и методов см сюда Русские шрифты в консоли

Добавлено через 1 минуту
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
printf("Press any key to continue\r\n"); * * * * *
* * * * getch();
- вот эта конструкция обеспечит вам задержку программы до нажатия любой клавиши и аналогична по действию system("PAUSE");
accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.10.2011, 09:44     непонимаю почему не работает... #7
Цитата Сообщение от -=ЮрА=-
C
1
printf("Press any key to continue\r\n");
вместо \r\n подойдёт \n, так как поток вывода - текстовый поток
bearwoolfs
15 / 15 / 1
Регистрация: 10.01.2011
Сообщений: 275
03.10.2011, 09:46     непонимаю почему не работает... #8
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
printf("%d %.2f\n", i*100, summ);
можно отдельно прокоментировать эту строка , как она правильно читаеться ???
ValeryLaptev
Эксперт С++
1039 / 818 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
03.10.2011, 09:58     непонимаю почему не работает... #9
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- в старых версиях (а скорее всего ТС именно в старой версии работает), для систем нужен stdlib.h
Насколько помню, даже в 2003 - уже не нужно было. А в 6-й - не помню. Может быть, и требовалось.
Но тут студия, конечно, подножку новичку делает. Потом в другой среде будет мучительно разбираться, почему не работает...
-=ЮрА=-
Заблокирован
Автор FAQ
03.10.2011, 10:00     непонимаю почему не работает... #10
Цитата Сообщение от bearwoolfs Посмотреть сообщение
можно отдельно прокоментировать эту строка , как она правильно читаеться ???
printf(строка формата, список аргументов)
строка формата "%d %.2f\n" - %d вывод целых %.2f вывод чисел с плавающей точкой (только два знака после запятой) \n - символ перевода строки
детальней о printf здесь http://www.cplusplus.com/reference/c...cstdio/printf/

Добавлено через 42 секунды
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
А в 6-й - не помню.
- 100% в ней пишу...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2011, 10:01     непонимаю почему не работает...
Еще ссылки по теме:

Почему не работает gets? - C++
Хочу чтобы функция создавала массив строку. Всё работало если указывать фиксированный размер массива, но я захотел , чтобы main()...

Почему не работает? - C++
создаю прогу, которая использует родовые функции. Вот написал код, когда две команды, которые я закоментировал закоментированы, то прога...

Не работает. Почему? - C++
Почему не работает данный код? #include &lt;stdio.h&gt; void main() { char *menu; char **order; char **Cprice; int a = 0; ...

Почему не работает? - C++
#include &lt;iostream&gt;; #include &lt;cmath&gt;; #include &lt;vector&gt;; using namespace ::std; void main () { vector&lt;double&gt;temps; ...

почему-то не работает - C++
ошибок компилятор не видит, но компилировать отказывается (dev-cpp + mingw). ошибки в работе программы меня мало волнуют, но надо чтобы она...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ValeryLaptev
Эксперт С++
1039 / 818 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
03.10.2011, 10:01     непонимаю почему не работает... #11
Цитата Сообщение от bearwoolfs Посмотреть сообщение
можно отдельно прокоментировать эту строка , как она правильно читаеться ???
C++
1
printf("%d %.2f\n", i*100, summ);
Вывести выражение i*100 как целое десятичное число с размером при выводе по умолчанию, вывести summ как дробное число (float) с двумя знаками после запятой и общим размером по умолчанию.
Размер - это сколько символов на экране займет.
А потом перевести курсор на след. строку экрана.
Yandex
Объявления
03.10.2011, 10:01     непонимаю почему не работает...
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru