Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
MicroL
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 16
#1

Помогите исправить ошибку.. - C++

19.02.2012, 14:45. Просмотров 1249. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <math.h>
#include <stdlib.h>
 
using namespace std;
float matrix(float *x,float *y){
int i,j,n;
cout<<"vvedite kolichestvo koordinat\n";
cin>>n;
x=(float*)malloc(n* sizeof (float));
y=(float*)malloc(n* sizeof (float));
for (i=0; i<n; i++)
  for (j=0; j<n; j++)
return sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
}
int main()
{int i,j,n;
 
float *a,*b; float *c;
c=(float*)malloc(n* sizeof (float));
cout<<"vedite koordinati X\n";
for (i=0;i<n;i++)
cin>>a[i]; cout<<endl<<"vedite koordinati Y\n";
for (j=0;j<n;j++)
cin>>b[i];cout<<endl;
for (i=0;i<n;i++)
    for (j=0;j<n;j++)
    c[i][j]=matrix(a[i],b[j]);// вот тут ошибка,некорректные типы "float[int]" для индекса массива
// ошибка: cannot convert «float» to «float*» for argument «1» to «float matrix(float*, float*)»|
for (i=0;i<n;i++) cout<<endl;
    for (j=0;j<n;j++)
    cout<<c[i][j]<<" ";//ошибка: некорректные типы «float[int]» для индекса массива
    return 0;
}
Добавлено через 1 минуту
Программа решает эту задачу.
На плоскости заданы своими координатами n точек. Создать матрицу, элементами которой являются расстояние между каждой пару точек
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2012, 14:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите исправить ошибку.. (C++):

Помогите исправить ошибку..... - C++
#include&lt;stdio.h&gt; #include&lt;ctype.h&gt; #include&lt;math.h&gt; #include&lt;string&gt; #include&lt;iostream&gt; #include&lt;stdlib.h&gt; #define size_str 80...

помогите исправить ошибку - C++
1) Надо исправить решение задачи , чтобы ввод значений элементов массива и вывод результатов производился в главной программе, а обработка...

Помогите исправить ошибку! - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;Windows.h&gt; #include &lt;cstdlib&gt; #include &lt;time.h&gt; #include &lt;ctime&gt; using...

Помогите исправить ошибку - C++
Всем привет, выдается ошибка, не могу понять с чем связано. Задача такая: сделать из массива новый массив с неповторяющимися элементами. ...

Помогите исправить ошибку - C++
#include &lt;process.h&gt; #include &lt;stdio.h&gt; int a; void Thread( void* pParams ) { int i, num = 0; while ( 1 ) ...

Помогите исправить ошибку.. - C++
Вот есть задача: Дано вещественное число X и целое число N (&gt; 0). Найти значение вы-ражения 1 – X^2/(2!) + X^4/(4!) – … +...

7
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
19.02.2012, 14:49 #2
C++
1
c[i][j] = 0;
чтобы такая запись была корректной, тип переменной 'c' должен быть не float*, а float**; выделять память под двумерный массив нужно будет тоже не так, как под одномерный.
1
MicroL
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 16
19.02.2012, 14:55  [ТС] #3
а как под двумерный массив память выделять??
0
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
19.02.2012, 15:02 #4
вот сюда загляните:
Динамическое распределение памяти в функции и его возврат
но там с++ а не си. впрочем аналогия присутствует. вместо new делаете маллоки.
0
MicroL
1 / 1 / 0
Регистрация: 19.02.2012
Сообщений: 16
19.02.2012, 15:10  [ТС] #5
Цитата Сообщение от DU Посмотреть сообщение
вот сюда загляните:
Динамическое распределение памяти в функции и его возврат
но там с++ а не си. впрочем аналогия присутствует. вместо new делаете маллоки.
я на с++ же пишу, тока я не умею пока с new работать.. спасиб
0
-=ЮрА=-
Заблокирован
Автор FAQ
19.02.2012, 15:42 #6
Цитата Сообщение от MicroL Посмотреть сообщение
а как под двумерный массив память выделять??
- http://www.cyberforum.ru/faq/thread436065.html#post2464869 прочтите пункт 4.1 и код к нему
По вашему заданию - У вас есть n точек, хорошо вы выделили память под их координаты, далее следуя задание нужно проделать вот что
C++
1
2
3
4
5
6
7
8
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
{
    if(i == j)
        c[i][j] = 0;//Точка совпадает сама с собой надеюсь понятно
    else
        c[i][j] = sqrt(pow(x[i] - x[j],2.0) + pow(y[i] - y[j],2.0));
}
И память под массив длин c должна составить nxn т.е. n - строк и n - столбцов
0
-=ЮрА=-
Заблокирован
Автор FAQ
19.02.2012, 15:44 #7
Добавлено через 10 минут
Код С++ реализующий алгоритм
Цитата Сообщение от MicroL Посмотреть сообщение
. Создать матрицу, элементами которой являются расстояние между каждой пару точек
ниже
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
 
double getLength(double x1, double y1, double x2, double y2)
{
    return sqrt(pow(x2 - x1,2.0) + pow(y2 - y1,2.0));
}
 
int main()
{
    int i,j,n;
    double *x, *y, **c;
    cout<<"Vvedite kolichestvo koordinat\n";cin>>n;
    x = new double[n];
    y = new double[n];
    c = new double*[n];
    //параллельно с вводом віделяем память под строки с
    for (i = 0; i < n; i++)
    {
        c[i] = new double[n];
        cout<<"Point "<<i + 1<<"\n";
        cout<<"x = ";cin>>x[i];
        cout<<"y = ";cin>>y[i];
    }
    //Считаем матрицу длин
    //и чтоб зря ещё 2 цикла не писать выводим её
    for(i = 0; i < n; i++)
    {
        for(j = 0; j < n; j++)
        {
            if(i == j)
                c[i][j] = 0;//Точка совпадает сама с собой надеюсь понятно
            else
                c[i][j] = getLength(x[i], y[i], x[j], y[j]);
            cout<<setw(6)<<setprecision(3)<<c[i][j]<<" ";
        }
        cout<<"\n";
    }
    system("pause");
    //Память не чищу, приложение работает 1 раз, после его завершения память очистит ОС
    return 0;
}
0
Миниатюры
Помогите исправить ошибку..  
VeraB
0 / 0 / 0
Регистрация: 11.06.2014
Сообщений: 5
13.06.2014, 12:54 #8
DU, не подскажите как написать программу, а то не могу понять, что нужно делать и с чего начинать
Найти максимум расстояний между монотонно убывающей и монотонно возрастающей подстроками длиной не менее 3 символов, которые есть во второй строке в инвертированном виде
с++
0
13.06.2014, 12:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2014, 12:54
Привет! Вот еще темы с ответами:

Помогите Исправить Ошибку - C++
Помогите пожалуйста исправить ошибку в проге: #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double f1(double); double...

Помогите исправить ошибку - C++
Программа считывает из входного файла символы и соответствующие им коды. Затем вводится строка. В выходной файл записывается зашифрованная...

Помогите исправить ошибку - C++
Программа должна посчитать р используя s. После ввода любого значения у выдает :&quot;Floating poin eror: Divide by 0. Abnormal program...

Помогите исправить ошибку - C++
#include&lt;iostream&gt; #include&lt;time.h&gt; #include&lt;windows.h&gt; #include&lt;vector&gt; using namespace std; bool Search(int i,int j); ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.