Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2014, 16:24   #1
Мики6277
Пользователь
 
Регистрация: 07.07.2013
Сообщений: 32
По умолчанию Простейшая задача на Си

Смысл задачи в том, что пользователь вводит число в местрах, а потом выводится значение в дюймах. Но не в этом суть, ведь код вроде рабочий
Код:
#include <stdio.h>
#include <math.h>

int main(){
	
	double x;
    scanf_s("%lf", &x );
    
	double y=(x*100)/2.54;
	printf("y=%.5lf\n", y);
	
	putchar('\n');
	return 0;
}
Но по какой-то причине программа не запускается, а красным подсвечивается строка
Код:
	$(CC) $(LINKOBJ) -o $(BIN) $(LIBS)
в *.win

Помогите.
Мики6277 вне форума Ответить с цитированием
Старый 27.10.2014, 17:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А что за компилятор?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.10.2014, 18:10   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

...и совсем-совсем никаких сообщений про ошибки?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 27.10.2014, 18:23   #4
Мики6277
Пользователь
 
Регистрация: 07.07.2013
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А что за компилятор?
Dev компилятор

Цитата:
Сообщение от min@y™ Посмотреть сообщение
...и совсем-совсем никаких сообщений про ошибки?
совсем никаких

Последний раз редактировалось Stilet; 27.10.2014 в 19:50.
Мики6277 вне форума Ответить с цитированием
Старый 27.10.2014, 18:41   #5
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
совсем никаких
Код:
main.cpp:7:23: error: ‘scanf_s’ was not declared in this scope
Заменил на scanf, работает:
Код:
g++ main.cpp -o main
./main
123
y=4842.51969
rrrFer вне форума Ответить с цитированием
Старый 27.10.2014, 19:16   #6
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Несколько замечаний по этой строчке:

Код:
double y=(x*100)/2.54;
Заведите за правило: константы должны быть явного типа double (или float). Это значит писать: 100.0. Так вы убережёте себя от неприятностей

Неправильно:
Код:
#include <stdio.h>

int main()
{
    double y = 100 / 3;

    printf( "y = %.5lf\n", y ); // output: y = 33.00000

    return 0;
}
Правильно:
Код:
#include <stdio.h>

int main()
{
    double y = 100.0 / 3.0;

    printf( "y = %.5lf\n", y ); // output: y = 33.33333

    return 0;
}
Если используете float, то константы записываются так: 100.0f

Код:
#include <stdio.h>

int main()
{
    float y = 100.0f / 3.0f;

    printf( "y = %.5f\n", y ); // output: y = 33.33333

    return 0;
}
P.S. К слову сказать, переменные и константы float занимают меньше памяти, чем double

Последний раз редактировалось 8Observer8; 27.10.2014 в 19:19.
8Observer8 вне форума Ответить с цитированием
Старый 27.10.2014, 19:46   #7
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Цитата:
Несколько замечаний по этой строчке:
Замечания не в тему, у ТС нет проблем, о которых ты пишешь.

Цитата:
Заведите за правило: константы должны быть явного типа double (или float).
Зачем?
Тебе не кажется что умножение на 100 можно выполнить эффективнее чем на 100.0 ?
А возведение в степень?
"Правило" более чем странное вообще.
rrrFer вне форума Ответить с цитированием
Старый 27.10.2014, 20:28   #8
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Автору будет полезно это знать. Раз он написал в коде 100, это значит, что с большой делей вероятности, он наступит на грабли. Лучше сразу приучить себя писать явно: 100.0 и 100.f, чтобы уберечь себя от неприятностей

Последний раз редактировалось 8Observer8; 27.10.2014 в 20:35.
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual studio с++. простейшая задача Crock95 Помощь студентам 3 10.03.2018 10:35
Простейшая задача. Матрицы kobrin13 C# (си шарп) 0 17.10.2014 19:04
php+mysql еще одна простейшая задача balambay Помощь студентам 9 21.07.2014 13:35
php простейшая задача balambay Помощь студентам 5 19.07.2014 19:26
Простейшая задача на функцию со сменным количеством аргументов iFireFly Общие вопросы C/C++ 1 07.01.2010 12:21