Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

02.10.2011, 13:39. Просмотров 564. Ответов 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");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2011, 13:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос непонимаю почему не работает... (C++):

Почему выводится в виде таблицы и почему не работает сортировка - C++
почему выводится в виде таблицы? почему не работает сортировка? и как туда можно вставить классы комнат? hotel.h #include...

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

Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает - C++
почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает. Имею в ввиду что сделал прогу которая меняет...

Почему в библиотеке не работает то, что спокойно работает в программе? - C++
День всем добрый! Я здесь решил собрать библиотеку для конструктора игр Game Maker. Хотел поэкспериментировать. Как всегда, у...

Не могу понять почему не работает (или правильно не работает) - C++
#include &lt;iostream.h&gt; #include &lt;conio.h&gt; #define N 5 #define M 3 void main() { int a; int i,j; cout&lt;&lt;&quot;nachalnya...

Почему в динамическом массиве не работает то, что работает со статическим? - C++
Программа зависает #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #include&lt;time.h&gt; using namespace std; int main() { ...

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

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

Добавлено через 1 минуту
Цитата Сообщение от U4_nik Посмотреть сообщение
summ = cena * i / 1000;
- потому и сумма что накапливает, а вы расчёт на каждой итерации делаете...
0
ValeryLaptev
Эксперт С++
1045 / 824 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
03.10.2011, 09:22 #4
-=ЮрА=-, в студии по умолчанию подцепляется нужная библиотека. А вот МинГВ требует явного указания.
0
-=ЮрА=-
Заблокирован
Автор 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;
}
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");
0
accept
4828 / 3249 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
03.10.2011, 09:44 #7
Цитата Сообщение от -=ЮрА=-
C
1
printf("Press any key to continue\r\n");
вместо \r\n подойдёт \n, так как поток вывода - текстовый поток
0
bearwoolfs
15 / 15 / 1
Регистрация: 10.01.2011
Сообщений: 275
03.10.2011, 09:46 #8
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
printf("%d %.2f\n", i*100, summ);
можно отдельно прокоментировать эту строка , как она правильно читаеться ???
0
ValeryLaptev
Эксперт С++
1045 / 824 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
03.10.2011, 09:58 #9
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- в старых версиях (а скорее всего ТС именно в старой версии работает), для систем нужен stdlib.h
Насколько помню, даже в 2003 - уже не нужно было. А в 6-й - не помню. Может быть, и требовалось.
Но тут студия, конечно, подножку новичку делает. Потом в другой среде будет мучительно разбираться, почему не работает...
0
-=ЮрА=-
Заблокирован
Автор FAQ
03.10.2011, 10:00 #10
Цитата Сообщение от bearwoolfs Посмотреть сообщение
можно отдельно прокоментировать эту строка , как она правильно читаеться ???
printf(строка формата, список аргументов)
строка формата "%d %.2f\n" - %d вывод целых %.2f вывод чисел с плавающей точкой (только два знака после запятой) \n - символ перевода строки
детальней о printf здесь http://www.cplusplus.com/reference/clibrary/cstdio/printf/

Добавлено через 42 секунды
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
А в 6-й - не помню.
- 100% в ней пишу...
1
ValeryLaptev
Эксперт С++
1045 / 824 / 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) с двумя знаками после запятой и общим размером по умолчанию.
Размер - это сколько символов на экране займет.
А потом перевести курсор на след. строку экрана.
0
03.10.2011, 10:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2011, 10:01
Привет! Вот еще темы с ответами:

Почему не работает cin.clear() и как работает sync()? - C++
#include&lt;iostream&gt; #include&lt;cstring&gt; using namespace std; char*input(char*ch,int&amp;n){ cin.getline(ch,20); //cin.sync(); ...

Теория. Почему в данном случае copy() не работает после reserve(), но работает после resize()? - C++
Есть такая функция: void Array::SetStartIndexes(sz3_Arr_t *array) { start_index.reserve(array-&gt;size()); ...

Работает в Borland Developer Studio 2006 но не работает в Visual Studio 2008, почему? - C++
Вводим строку и меняем в ней первый и последний символы. Всё хорошо в Borland Developer Studio, а Visual Studio 2008 пишет, что проэкт...

Почему не работает? - C++
Здравствуйте уважаемые программисты! Вроде должно работать. Программа считает среднее арифметическое значение: Вот код. #include...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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