Вопрос про множества.
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Вопрос про множества. - 2007-09-17 02:02:58.226666
|
|
|
Antigen
Сообщений: 92
Оценки: 0
Присоединился: 2007-04-02 11:41:48.606666
|
Код котороый ты видишь ниже делает не много не мало - прямое произведение двух множеств. Так вот, если первое множество 3, 5, 2, а второе 2, 1, 4 то результат этого декартова произведения должен быть 3*2, 3*1, 3*4; 5*2, 5*1, 5*4 и т.д. Почему Этот код перебирает все значения i (т.е. 3 5 и 2),но умножает только на последний элемент (j) т.е. на 4???;( По задумке код должен перемножать каждый на каждого. Где допущена ошибка??? Заранее благодарен за ответ. #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <iostream.h> int main() { int dim,i,j; double* a; double* b; double c; cout<<"Input dimention:"; cin>>dim; a=(double*)malloc(dim*sizeof(double)); b=(double*)malloc(dim*sizeof(double)); if(!a) { printf("Not enough memory!"); return 1; } if(!b) { printf("Not enough memory!"); return 1; } cout<<"Input elements of the first array:"; for(i=0;i<dim;++i) cin>>a; cout<<"Input elements of the second array:"; for(j=0;j<dim;++j) cin>>b[j]; cout<<"The result is:"; cout<<' '; for(i=0;i<dim;++i) { for(j=0;j<dim;++j) c=a*b[j]; cout<<c; } cin>>dim; free(a); free(b); return 0; }
|
|
|
RE: Вопрос про множества. - 2007-09-17 03:09:42.846666
|
|
|
sergzone
Сообщений: 33
Оценки: 0
Присоединился: 2007-08-28 19:41:52.666666
|
int main()
{
int _mArray[4] = {3,2,1};
int _lArray[4] = {5,4,2};
for (int i=0;i<sizeof(_mArray)/sizeof(*_mArray);i++)
{
for (int j=0;i<sizeof(_lArray)/sizeof(*_lArray);j++)
{
cout << _mArray[i]*_lArray[j];
}
}
return 0;
}
Не тестировал, но вроде должно пaхать.
|
|
|
RE: Вопрос про множества. - 2007-09-17 10:26:23.013333
|
|
|
Antigen
Сообщений: 92
Оценки: 0
Присоединился: 2007-04-02 11:41:48.606666
|
Спасиб за вариант, но ошибко кроется в оригинальном коде и её желательно исправить там же… Кто знает - прошу не молчите.
|
|
|
RE: Вопрос про множества. - 2007-09-17 10:47:29.500000
|
|
|
nixo
Сообщений: 213
Оценки: 0
Присоединился: 2006-06-25 20:22:26
|
привет вот эту вещь я не понял for(i=0;i<dim;++i) cin>>a; что происходит здесь? а -это указатель все таки может надо так for(i=0;i<dim;++i) cin>>a;
|
|
|
RE: Вопрос про множества. - 2007-09-17 11:01:39.913333
|
|
|
FireLess
Сообщений: 3
Оценки: 0
Присоединился: 2007-09-09 03:18:58.103333
|
Блин… ты определись ты либо на С++ пиши либо на С. А вообще ошибка вот тут for(i=0;i<dim;++i) cin>>a; а - это указатель. то бишь адрес а ты его вводишь вручную я полагаю имелось ввиду что-то типа *(a+i)
|
|
|
RE: Вопрос про множества. - 2007-09-17 14:06:10.290000
|
|
|
Antigen
Сообщений: 92
Оценки: 0
Присоединился: 2007-04-02 11:41:48.606666
|
Ответ был прост. сам удивляюсь… Вот правильный код! #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <iostream.h> int main() { int dim,i,j; double* a; double* b; double c; cout<<"Input dimention:"; cin>>dim; a=(double*)malloc(dim*sizeof(double)); b=(double*)malloc(dim*sizeof(double)); if(!a) { printf("Not enough memory!"); return 1; } if(!b) { printf("Not enough memory!"); return 1; } cout<<"Input elements of the first array:"; for(i=0;i<dim;++i) cin>>a; cout<<"Input elements of the second array:"; for(j=0;j<dim;++j) cin>>b[j]; cout<<"The result is:"; cout<<' '; for(i=0;i<dim;++i) for(j=0;j<dim;++j) { c=a*b[j]; cout<<c; } cin>>dim; free(a); free(b); return 0; } Всё дело в фиг скобках!
|
|
|
|
|