Другие языки программирования и технологии

очень небольшая прога на с++, почему не работает??

#include <stdio.h>
int main()
{int a,b,c;
scanf("%d %d", &a, &b);
c=1/((1/a)-(1/b));
printf("%d", c);
return 0;
}

пишет это -

warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

и это

fatal error LNK1169: обнаружен многократно определенный символ - один или более
Дмитрий Рябов
Дмитрий Рябов
1 522
Эта работает:

#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d %d", &a, &b);
c=1./((1./a)-(1./b));
printf("%d", c);
return 0;
}
ВП
Виктор Пискунов
76 473
Лучший ответ
Дмитрий Рябов ок, понял что типа если точки поставить то он будет нормально делить)))
Дмитрий Рябов НО, теперь я увидел ошибку при вычислениях, он теперь при вводе 10 и 35 пишет 13, а надо 14, а вот написали там в ответе мне еще на С++ и там все работает правильно))
Ты для начала определись, какой язык учишь - C или C++. Тогда и ошибок поменьше будет. И типы данных другие освой, кроме int.
Дмитрий Рябов дк и учусь, 4 код только)))
что там твоя среда выдала - фиг его знает
но в делении и в 1/а и в 1/b будет просто ноль - деление целых отсекает дробную часть и оставляет только целое. и если остальное подправишь поймаешь деление на ноль во время исполнения. Учи другие типы данных.

-----------
warning C4996:
варнинги не страшны если понимать что и почему
Тут просто предупредило что эта функция небезопасна

fatal error LNK1169: обнаружен ..
Тут судя по начальным буквам (LNK) или криво среда установилась иликриво пути прописаны или.. . ну в общем что-то с линкером связано, а не с кодом
Сергей Ананьев
Сергей Ананьев
75 320
Дмитрий Рябов ок, буду учить типы :) например long int пойдет ведь??
Ну так и поставь ему в опциях настройку которую он просит - открой и увидишь там кучу галочек.
Про scanf он тебя просто предупредил, а про многократно - значит определяешь переменную несколько раз или она определена в модуле который ты include.
То же самое - или перепиши аккуратнее, или в опциях скажи чтоб тебя не предупреждал.

Для типовых программ на C удобнее всего старый добрый компилятор типа Borland Turbo C. Ну и что, что он под DOS.
Дмитрий Рябов Короче спасибо вам ВСЕМ, я теперь понял что это не С++ а просто С, а другие типы я еще не знал))))
вот это С++

#include <iostream>

using namespace std;

int main()
{
float a,b,c;
cin >> a >> b;
c = 1/((1/a)-(1/b));
cout << c;
return 0;
}
а у тебя С
Виктор Пискунов Он типы int использует :)
Турсунакунов Эльдияр в этом я думаю как раз и есть его проблема =)
ну а если ему именно тип ИНТ нужен и именно С++. то из наших двух исходников нужный ему код уже сам составит.
Дмитрий Рябов Короче спасибо вам ВСЕМ, я теперь понял что это не С++ а просто С, а другие типы я еще не знал))))