Умножьте элементы на вторичной диагонали массива. Borland C

0

Вот что я пробовал:

#include <conio.h>
#include <stdio.h>
// calculeaza produsul elementelor diagonalei secundare ale unei matrici
// 1 2 3
// 5 4 2
// 6 5 8 == 13
void main(){
    int a[20][20], i, j, n, p;
    printf("Dati numarul de linii si coloane a matricei:");
    scanf("%d", &n);
for(i=1; i<=n; i++)
for(j=1; j<=n; j++){
    printf("a["<<i<<","<<j<<"]=");
    scanf(a[i][j]);
}
p=1;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
    if(i+j == n+1){
        p=a[i][j];
    }
printf("Produsul=%d", p);
getch ();
}

Я получаю 3 ошибки:

1.Illegal use of pointer, line 13.
2.Can not convert 'int' to 'const char *', line 14.
3.Type mismatch in parameter '_format' in call to 'scanf(const char *,...)'.

Я не могу понять это, я сделал это в C++, но не могу заставить его работать на C.

  • 1
    Вы смешиваете C и C++ , printf("a["<<i<<","<<j<<"]="); -> printf("a[%d,%d]=", i, j); и scanf(a[i][j]); -> scanf("%d", &a[i][j]);
  • 0
    Ну, я знаю, что я микшировал, потому что я не очень разбираюсь в C, в любом случае, спасибо, что решил проблему с ошибками.
Теги:
arrays
matrix
diagonal

2 ответа

2
Лучший ответ

Проверьте, что printf() и scanf() 's.printf() могут использоваться как

printf("a[%d,%d]=",i,j);

scanf() следует использовать как:

scanf("%d",&a[i][j]);
1

Вы не можете использовать << для работы со строками на простом C. См. Документацию по printf и scanf чтобы узнать, как правильно их использовать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню