Проблемма в коде, С++

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
eXtezi
Сообщения: 4
Зарегистрирован: 13 июл 2007, 17:16

13 июл 2007, 17:31

Приветствую уважаемых программистов. я начинающий,так сказать заварник, и у меня возникла такая проблема. пробовал написать программу для конвертирования температуры, но при компелировании выдает ошибки. Язык С++, программа Dev-C++. вот код:
// Программа для преобразования
// градусов Цельсия в градусы Фаренгейта:
// Fahrenheit = NCelsius * (212 - 32) / 100+32
//
#include <stdio.h>
#include <iostream.h>
int mein{int nNumberofArgs, char* pszArgs[]}
{
// Введите температурув градусах Цельсия
int nNCelsius;
cout << "Введите температуру по Цельсию: ";
cin >> nNCelsius;

int nNFactor;
nNFactor = 212-32;

int nFahrenheit;
nFahrenheit = nNfactor * nNCelsius/100+32;

cout << " Температура по Фаренгейту: ";
cout << nFahrenheit;
return 0;
Кто знает-помогите, очень нужно, а то у меня скоро вступительные, хочу быть подкован.
Аватара пользователя
WinMain
Сообщения: 913
Зарегистрирован: 14 янв 2005, 10:30
Откуда: Москва
Контактная информация:

13 июл 2007, 22:01

Ну во-первых, функция должна называться main, а не mein.
Сама функция должна располагаться между двух фигурных скобок {}, а в твоём коде присутствует лишь одна в начале, второй нет в конце.
Остальное вроде всё правильно, но какая-то очень уж странная формула пересчёта температуры. Температура по Фаренгейту вычисляется просто:
tF = tC*9/5+32
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

14 июл 2007, 01:49

WinMain писал(а): Сама функция должна располагаться между двух фигурных скобок {}, а в твоём коде присутствует лишь одна в начале, второй нет в конце.
Остальное вроде всё правильно
Прочитал про замечание о фигурных скобках и как-то сразу бросилось в глаза, что параметры функции mein также заключены в фигурные скобки вместо положенных квадратных :)
но какая-то очень уж странная формула пересчёта температуры. Температура по Фаренгейту вычисляется просто:
tF = tC*9/5+32
В принципе, если на
Fahrenheit = NCelsius * (212 - 32) / 100+32
посмотреть нежным взглядом, то можно увидеть, что тут, в общем-то, написано то же самое [s], только вид сбоку[/s] :)

(212 - 32) / 100 == 9/5
eXtezi
Сообщения: 4
Зарегистрирован: 13 июл 2007, 17:16

14 июл 2007, 23:21

пасибо за советы,а если так?
//
// Программа для преобразования
// градусов Цельсия в градусы Фаренгейта:
// Fahrenheit = NCelsius * (212 - 32) / 100+32
//
#include <stdio.h>
#include <iostream.h>
int mein(int nNumberofArgs, char* pszArgs[])
{
// Введите температуру в градусах Цельсия
int nNCelsius;
cout << "Введите температуру по Цельсию: ";
cin >> nNCelsius;

int nNfactor;
nNfactor = 212-32;

int nFahrenheit;
nFahrenheit = nNfactor * nNCelsius/100+32;

cout << " Температура по Фаренгейту: ";
cout << nFahrenheit;
return 0;
}
eXtezi
Сообщения: 4
Зарегистрирован: 13 июл 2007, 17:16

15 июл 2007, 09:49

Да и еще. Я компилирую код. Прграмма показывает мне путь к файлу, но там его нет.
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

16 июл 2007, 12:22

eXtezi писал(а):Да и еще. Я компилирую код. Прграмма показывает мне путь к файлу, но там его нет.
Пиши подробнее и конкретнее. Конкретный текст ошибок, а не свой пересказ этого текста :) Полагаю, многие, кто читает твои сообщения, просто не понимает, ЧТО ИМЕННО произошло. Разумеется, в этом случае и ничего не могут посоветовать.

Кстати, во втором релизе исхолдного текста твоей программы по прежнему значится:

int mein

вместо правильного (как отметил выше WinMain):

int main
eXtezi
Сообщения: 4
Зарегистрирован: 13 июл 2007, 17:16

16 июл 2007, 13:56

Спасибо, что напомнил, в этом и была вся проблема- рассеяность внимания сказывается.А почему у меня при запуске DOS пишет что-то такое: "ттчфш ...", вместо "Введите температуру по Цельсию:" ?
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

16 июл 2007, 16:41

eXtezi писал(а):А почему у меня при запуске DOS пишет что-то такое: "ттчфш ...", вместо "Введите температуру по Цельсию:" ?
Если программа создается в виндовом C, то все объяснимо.
Ты выводишь текст на консоль (cout), а это надо делать (чтобы было нормально видно) в DOS-овекой (OEM) кодировке.
Если нет необходимости писать по-русски, пиши латиницей. Так будет проще :)
Если же необходим вывод именно кириллицей, то воспользуйся предварительно (для перекодировки) ф-ей CharToOem или CharToOemBuff
Ответить