Написала программу по нахождению определителя матрицы 2 порядка на СИ++. Но совершенно не выходит сделать так, что бы расчет производится в функции, которая получает данные по указателю и возвращает результат по указателю.
#include
#include
int Det(int a,int b,int c,int d)
{
return (a*d-b*c);
}
int main ()
{
int a[2][2];
int i,j;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
a[i][j]= rand()%5;
printf("%d\t", a[i][j]);
}
printf("\n det= %d ", Det(a[0][0],a[0][1],a[1][0],a[1][1]));
return 0;
}
Другие языки программирования и технологии
Написала программу. поморите, пожалуйста исправить. Я в Си++ новичок.
#include
#include
void Det(int *my_matrix, int *resultat)
{
*resultat = my_matrix[0]*my_matrix[3]-my_matrix[1]*my_matrix[2];
}
int main ()
{
int my_matrix[4];
int i;
int resultat;
time_t t;
/* инициализация генератора случайных чисел */
srand((unsigned) time(&t));
for (i=0;i<4;i++)
{
my_matrix[i]= rand()%5;
printf("%d\t", my_matrix[i]);
}
Det(my_matrix, &resultat);
printf("\n det= %d ", resultat);
return 0;
}
#include
void Det(int *my_matrix, int *resultat)
{
*resultat = my_matrix[0]*my_matrix[3]-my_matrix[1]*my_matrix[2];
}
int main ()
{
int my_matrix[4];
int i;
int resultat;
time_t t;
/* инициализация генератора случайных чисел */
srand((unsigned) time(&t));
for (i=0;i<4;i++)
{
my_matrix[i]= rand()%5;
printf("%d\t", my_matrix[i]);
}
Det(my_matrix, &resultat);
printf("\n det= %d ", resultat);
return 0;
}
Получает данные по указателю - тут и не пахнет. И это С, а не С++
Ну и опять-же использование rand без srand грозит Вам возможными одинаковыми "случайными" числами при каждом запуске.
Ок. Может, неправильно понял. В простейшем случае переделать фунцию int Det(int* a,int* b,int* c,int* d) и соотв. тело функции return (*a)*(*b) и т. д.
Ну или передавать указатель на массив, что лучше.
Н-р так:
#include < iostream >
using namespace std;
int det(int(*a)[2]) {
cout << a[0][0] << endl << a[0][1] << endl << a[1][0] << endl << a[1][1] << endl;
}
int main() {
int a[2][2] = {
{1,2},
{3,4}
};
det(a);
}
Выведет:
1
2
3
4
Дальше сами.
Ну и ещё. Детерминат целый (?) и числа целые? Ну ээм... ок.
Ну и опять-же использование rand без srand грозит Вам возможными одинаковыми "случайными" числами при каждом запуске.
Ок. Может, неправильно понял. В простейшем случае переделать фунцию int Det(int* a,int* b,int* c,int* d) и соотв. тело функции return (*a)*(*b) и т. д.
Ну или передавать указатель на массив, что лучше.
Н-р так:
#include < iostream >
using namespace std;
int det(int(*a)[2]) {
cout << a[0][0] << endl << a[0][1] << endl << a[1][0] << endl << a[1][1] << endl;
}
int main() {
int a[2][2] = {
{1,2},
{3,4}
};
det(a);
}
Выведет:
1
2
3
4
Дальше сами.
Ну и ещё. Детерминат целый (?) и числа целые? Ну ээм... ок.
Александр Ковальчук
ей нужно на указатели всё переделать
Александр Ковальчук
Это имела ввиду
Если я правильно понял, что в функцию нужно передавать указатель.
то
многомерные массивы я бы лучше вписал в структуру, и уже нормально объектом делал что нужно
struct v2{
v2( void ){
int i,j;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
a[i][j]= rand()%5;
}
}
int a[2][2];
};
int Det( v2* p ){
return (p->a[0][0]*p->a[0][1]-p->a[1][0]*p->a[1][1]);
}
int main(){
v2 ad;
printf("\n det=%i\n", d(&ad) );
return 0;
}
то
многомерные массивы я бы лучше вписал в структуру, и уже нормально объектом делал что нужно
struct v2{
v2( void ){
int i,j;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
{
a[i][j]= rand()%5;
}
}
int a[2][2];
};
int Det( v2* p ){
return (p->a[0][0]*p->a[0][1]-p->a[1][0]*p->a[1][1]);
}
int main(){
v2 ad;
printf("\n det=%i\n", d(&ad) );
return 0;
}
Nik Моисей
// ошибку сделал
return (p->a[0][0]*p->a[1][1]-p->a[0][1]*p->a[1][0]);
return (p->a[0][0]*p->a[1][1]-p->a[0][1]*p->a[1][0]);
Похожие вопросы
- Напишите программу, паскаль, пожалуйста
- Помогите написать программу со switch в СИ
- Напишите программу, пожалуйста! На Си (не С++)
- Помогите, пожалуйста, написать программу на языке Си
- Написать программу на Си
- Помогите написать программу на Си
- я плохо знаю с++ помогите пожалуйста исправить программу
- Пожалуйста, ктол может объяснитеб как написать программу на языке Си по этой задаче. С чего начать????
- Помогите решить написать программу в СИ пожалуйста
- Пожалуйста, помогите написать программу через функции в Си++