[an error occurred while processing this directive]
|
long B;
B=200000
действительно по правилам языка Си B будет не 200000. Потому что константы по умолчанию имеют тип int, а константа 200000 не помещается в int. Поэтому надо явно сказать,что Ваша константа типа long - надо так :
B=200000L;
Так заработает.
Ну а если надо умножить int A на int B и записать результат в int C, то если результат превысит 2 байта и не поместится в C, то будет в результате какой-то мусор. Поэтому совершенно бессмысленно получать результат вычислений как 4-х байтовый long, если затем Вы все равно записываете его в 2-байтовую переменную и он "обрежется" при пересылке в 2-байтовую переменную int C. Так что можно просто C = A * B. Но если у Вас результат может не поместиться в два байта, то просто сделайте long C - четырехбайтовую переменную C для результата.
E-mail: info@telesys.ru