2014-11-11 2 views
0

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

#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, так или иначе спасибо , которые решили проблему с ошибками. –

ответ

2

Пожалуйста, проверьте Е() и зсапЕ() 's.printf() можно использовать в качестве

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

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

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

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

Смежные вопросы