Разделить первую строку на первый элемент матрицы

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
lexatigr
Сообщения: 1
Зарегистрирован: 19 мар 2011, 12:54

Разделить первую строку на первый элемент матрицы

Код: Выделить всё

#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;
 
 
int main(int argc, char *argv[])
{
        int i,j,N;
        int** X;
        cout << "Razmernost matricy"; cin >> N;
 
X= int*[N];
        for (i = 0; i < N; i++)
                        X[i] = new int[N];
 
        for ( i = 0; i < N; i ++ )
                for ( j = 0; j < N; j ++ ) {
                        printf ("X[%d][%d]=", i, j);
                        scanf ("%d", & X[i][j]);
                }
 
 
                printf("Matrica X\n");
                for ( i = 0; i < N; i ++ ) {
                        for ( j = 0; j < N; j ++ )
                                printf ( "%4d", X[i][j] );
                        printf("\n");
                }
              
        for (i = 0; i < N; i++)
                        delete X[i];
        delete[] X;
 
               for (i=0;i++){
                    for(j=0;j<N;j++){
                                     X[i][j]=X[i][j]/X[1][1];
                                      printf ( "%4d", X[i][j] );
                        printf("\n");
                        }
 
 
                system("PAUSE");
                return EXIT_SUCCESS;
}
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

Код: Выделить всё

    for (i=0;i++){
    for(j=0;j<N;j++){
    X[i][j]=X[i][j]/X[1][1];
    printf ( "%4d", X[i][j] );
    printf("\n");
    }


    system("PAUSE");
    return EXIT_SUCCESS;
    } 
тут не хватает фигурной скобки, отформатируйте код нормально и это будет лучше видно.
Вы освобождаете из под массива память, а потом пытаетесь его вывести, наверно что-то надо переставать
тут:

Код: Выделить всё

for (i=0;i++){
не хватает условия в цикле, смотрите на описание оператора for
тут:

Код: Выделить всё

X= int*[N];
не хватает оператора new
Приглашаю на свой блог о программировании: pro-prof.com
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

Разделить первую строку на первый элемент матрицы

Код: Выделить всё

for (i=0;i<N;i++){
		for(j=0;j<N;j++){
			X[i][j]=X[i][j]/X[1][1];
			printf ( "%4d", X[i][j] );
		}
		printf("\n");
	}
вы делите все элементы матрицы на первый элемент первой строки, нумерация элементов массивов в Си начинается с нуля.
Приглашаю на свой блог о программировании: pro-prof.com
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

Код: Выделить всё

	t=X[0][0];
	for(j=0;j<N;j++)
		X[0][j]/=t;
и стоит тип элементов матрицы взять дробным.
Приглашаю на свой блог о программировании: pro-prof.com
Аватара пользователя
rrrFer
Сообщения: 237
Зарегистрирован: 07 сен 2008, 14:15
Контактная информация:

Код: Выделить всё

#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;

int main(int argc, char *argv[]){
	int i,j,N;
	float
		**X,t;
	cout << "Razmernost matricy"; cin >> N;

	X = new float*[N];
	for (i = 0; i < N; i++)
		X[i] = new float[N];

	for ( i = 0; i < N; i ++ )
		for ( j = 0; j < N; j ++ ) {
			printf ("X[%d][%d]=", i, j);
			scanf ("%f", & X[i][j]);
		}


	printf("Matrica X\n");
	for ( i = 0; i < N; i ++ ) {
		for ( j = 0; j < N; j ++ )
			printf ( "%3.2f ", X[i][j] );
		printf("\n");
	}

	t=X[0][0];
	for(j=0;j<N;j++)
		X[0][j]/=t;

	printf("Matrica X\n");
	for ( i = 0; i < N; i ++ ) {
		for ( j = 0; j < N; j ++ )
			printf ( "%3.2f ", X[i][j] );
		printf("\n");
	}

	for (i = 0; i < N; i++)
		delete X[i];
	delete[] X;

	system("PAUSE");
	return EXIT_SUCCESS;
} 
Приглашаю на свой блог о программировании: pro-prof.com
Ответить