Помогите исправить начало программы [требует правки]

251
20 декабря 2016, 22:18

Суть в том, что дана Матрица А(7,7) нужно построить вектор в(7) из элементов главной диагонали.

#include <iostream>
#include <stdio.h>
int main()
{
    int A[7][7], B[7], min, max, n, i, j, N1, N2;
    printf("vvedite razmernost\n");
    scanf("%d",&n);
    printf("vvedite matricu =A[%d][%d]\n",n,n);
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    scanf("%d",&A[i][j]);
    printf("vivod vectora =B\n");
    B[i]=A[i][j];
    for(i=1;i<n;i++)
    printf("%d", &B[i]);
    return 0;
}
Answer 1

Ну, оставляя по-максимуму ваш код, я бы делал так...

int main() 
{
    int A[7][7], B[7], min, max, n, i, j, N1, N2;
    printf("vvedite razmernost: ");
    scanf("%d",&n);
    printf("vvedite matricu =A[%d][%d]\n",n,n);
    for(i=0;i<n;i++)
        for(j=0;j<n;j++)
        {
            printf("A[%d][%d] = ",i,j);
            scanf("%d",&A[i][j]);
        }
    printf("vivod vectora B: \n");
    for(i = 0; i < n; i++)
    {
        B[i] = A[i][i];
        printf("%d\n", B[i]);
    }
    return 0;
}

Но что вы планируете делать, если будет введено n=8, например?...

Answer 2

Вместо этих предложений

printf("vivod vectora =B\n");
B[i]=A[i][j];
for(i=1;i<n;i++)
printf("%d", &B[i]);

наберите

printf("vivod vectora =B\n");
for( i = 0; i < n; i++ ) B[i]=A[i][i];
for( i = 0; i < n; i++ ) printf("%d ", B[i]);
printf( "\n" );

Учтите, что вы должны проверять, что введенная пользователем размерность не превышает размерность вашего объявленного массива.

Answer 3

Помогите исправить начало программы

А ошибки-то в конце...

B[i]=A[i][j];
B[i]=A[i][i];

А ещё это должно быть в цикле.

for(i=1;i<n;i++)
for(i=0;i<n;i++)
printf("%d", &B[i]);
printf("%d", B[i]);
READ ALSO
Нужно ли удалять указатель на QRunnable

Нужно ли удалять указатель на QRunnable

Использую так называемый QThreadPool и закидываю в него указатель на QRunnableТакой код:

353
Не добавляет экземляр в конец линейного списка

Не добавляет экземляр в конец линейного списка

Не добавляет нового студента в конец списка

290