Форум программистов, компьютерный форум CyberForum.ru

Работа с функцией - C++

Восстановить пароль Регистрация
 
DooH
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 15
02.03.2010, 10:09     Работа с функцией #1
Привет Всем!!! Помогите пожалуйста. Нужно: Определить функцию, которая возвращает натуральное число, если аргумент функции является квадратом этого числа и ноль в противном случае.
Найдите все возможные целые значения длин сторон прямоугольного треугольника в диапазоне от 1 до N (N задаёт пользователь), используя определённую функцию.
Я мучалься, искал, пробовал и ничего никак не получаеться. Спасибо Всем заранее.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2010, 10:09     Работа с функцией
Посмотрите здесь:

Работа с функцией класса C++
Работа с классами. Нужна помощь с функцией C++
C++ Работа с функцией
работа с функцией qsort C++
работа с функцией FindFirstFile (API) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mamedovvms
2912 / 833 / 93
Регистрация: 30.04.2009
Сообщений: 2,613
02.03.2010, 10:13     Работа с функцией #2
C++
1
2
3
4
5
6
int kv(doble k)
{
  int i=sqrt(k);
  if (i*i==k) return i;
  return 0;
}
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
02.03.2010, 10:51     Работа с функцией #3
Ну и соответственно
Код
   for(i=1; i<=N; i++) {
     for(j=N; j<=N; j++) {
        if (kv(i*i+j*j)) printf ("i=%d j=%d\n", i, j);
     }
   }
PS: я бы объявил kv(int k), хотя это дело вкуса...
Вначале, конечно
#include <math.h>
#include <stdio.h>
DooH
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 15
03.03.2010, 22:46  [ТС]     Работа с функцией #4
Извините за настырность, я просто только начал изучать Си, и пока не могу сложить всё в кучу помогите пожалуйста. Я сложил, но пишет 2 ошибки:
1-я: LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
2-я: Debug/666.exe : fatal error LNK1120: 1 unresolved externals.
А код я написал такой:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream.h>
#include <windows.h>
#include <math.h>
#include <stdio.h>
kv(int k)
char S[80];
CharToOem("Введите число:",S); cout <<S;
cin >> k;
{
  int i=sqrt(k);
  if (i*i==k) return i;
  return 0;
}
for(i=1; i<=N; i++) 
{
     for(j=N; j<=N; j++) 
     {
        if (kv(i*i+j*j)) printf ("i=%d j=%d\n", i, j);
     }
}
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
04.03.2010, 01:38     Работа с функцией #5
Вот так ужасно все устроено, что нужна функция main
В конец кода напишите
C++
1
2
3
4
main()
{
   kv(k);
}
DooH
3 / 3 / 0
Регистрация: 02.03.2010
Сообщений: 15
04.03.2010, 18:08  [ТС]     Работа с функцией #6
У меня в етой части кода:
C++
1
  if (k(i*i+j*j))
пишет ошибку: error C2064: term does not evaluate to a function. Вроде всё правильно, а оно не работает.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
04.03.2010, 18:53     Работа с функцией #7
kv(int k)
char S[80];
CharToOem("Введите число:",S); cout <<S;
cin >> k;
{
int i=sqrt(k);
if (i*i==k) return i;
return 0;
}
for(i=1; i<=N; i++)
{
for(j=N; j<=N; j++)
{
if (kv(i*i+j*j)) printf ("i=%d j=%d\n", i, j);
}
}
много ошибок
исправил
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int kv(int k){
  int i=sqrt(k);
  if (i*i==k) return i;
  return 0;
}
int main(){
char S[80];
CharToOem("Введите число:",S); cout <<S;
cin >> k;
cout<<kv(k);
system("pause");
return 0;
}
зы у меня компилятор другой,некоторые функции не распознает..так что на сто процентов не убежден в работности кода
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2011, 11:55     Работа с функцией
Еще ссылки по теме:

работа с функцией в С++ C++
подскажите с функцией C++
Работа с двусвязным списком. Проблема с функцией удаления с конца C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ZiON_256
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 6
05.12.2011, 11:55     Работа с функцией #8
Я вот написал код, но программа не определяет k. Как это исправить?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <Windows.h>
using namespace std;
 
float kv(float k)
{
    float i=sqrt(k);
    if (i*i==k) return i;
    return 0;
}
float main ()
{
    SetConsoleOutputCP(1251);
    char S[80];
    CharToOemA("Введите число:",S);
    cout<<S;
    cin>>k;                  //не определяет
    cout<<kv(k);
    system("pause");
    return 0;
}
 Комментарий модератора 
Используйте теги форматирования кода!
Yandex
Объявления
05.12.2011, 11:55     Работа с функцией
Ответ Создать тему
Опции темы

Текущее время: 08:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru