在阵列的辅助对角线上乘以元素。博兰德C.

时间:2014-11-11 15:11:10

标签: c++ c arrays matrix diagonal

以下是我的尝试:

#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中使用它。

2 个答案:

答案 0 :(得分:2)

请检查你的printf()和scanf()&#39; s.printf()可以用作

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

scanf()应该用作:

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

答案 1 :(得分:1)

您无法使用<<处理普通话C中的字符串。请参阅printfscanf上的文档,了解如何正确使用它们。