Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4 
  Версия для печати (полностью) Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 10.04.2006
Откуда: Таганкаааа
Фото: 11
Есть,казалось бы простое задание:написать на языке Си(досовском) функцию,возвращающую несколько значений,применимо к заданию: для двух натуральных чисел найти нод и нок.Си(дос) только начал изучать,но решить не могу.

Вот что я накатал:

#include <stdio.h>

int vichisl(int a,int b)
{
while (a!=b)
{
if (a>b)
a-=b;
else
b-=a;
};
b=a*b/a;
return a,b;
}


main()
{ int a,b;
printf("\n‚Введите первое натуральное число:");
scanf("%d",&a);
printf("\n‚Введите второе натуральное число:");
scanf("%d",&b);
vichisl(a,b)
printf("\nHOD=%d,HOK=%d\n",a,b);
return 0;
}

только вот после верхней функции(где вычисления происходят верно) выдаётся совсем не тот ответ(не передаются переменные a и b)
в чём косяк?всю голову сломал уже,но решить так и не смог.

P.S числа берём натуральные,без всякой проверки ввода,фиг с ними.
P.P.S решать надо именно в дос варианте

_________________
Оставь надежду всяк сюда входящий...



Партнер
 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 29.10.2006
Откуда: Санкт-Петербург
Я извиняюсь, если спрошу глупость, но так разве можно делать?
LiGhTMan писал(а):
return a,b;

может только одно значение можно вернуть? или хотя бы указатель на массив?

LiGhTMan писал(а):
main()

может int main(), раз у вас дальше
LiGhTMan писал(а):
return 0;

_________________
превед дружог


 

Member
Статус: Не в сети
Регистрация: 14.03.2009
ха
LiGhTMan писал(а):
int vichisl

а потом
LiGhTMan писал(а):
return a,b;

это не будет работать =)

Также верно и про main(), как выше подсказывают.

Пля, я уже не помню, можно так сделать или нет, но объяви просто переменные а и б для функции vichisl в общем пространстве имен. И просто внутри функции сделай a := значение и б := значение, а в return пиши 0. Сразу скажу - на сейчас и на будущее - всегда делай return и никогда не пользуй void. (Функция ДОЛЖНА возвращать значение.)
Добавлено спустя 3 минуты, 20 секунд
Кароче, если не понятно:

Код:
#include <stdio.h>

int ext_a := 0;
int ext_b := 0;

int vichisl(int a,int b)
{
while (a!=b)
{
if (a>b)
a-=b;
else
b-=a;
};
b=a*b/a;

ext_a := a;
ext_b := b;

return 0;
}


int main()
{
printf("\n‚Введите первое натуральное число:");
scanf("%d",&ext_a);
printf("\n‚Введите второе натуральное число:");
scanf("%d",&ext_b);
vichisl( ext_a, ext_b );

printf("\nHOD=%d,HOK=%d\n", ext_a, ext_b );

return 0;
}


use Python =) ну или Рубы там всякие....


 

Member
Статус: Не в сети
Регистрация: 10.04.2006
Откуда: Таганкаааа
Фото: 11
кароче,спасибо всем,разобрался)

_________________
Оставь надежду всяк сюда входящий...


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 4 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: pavka_k, TerorBlade и гости: 20


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan