应用程序正在获取数字,并与来自用户的数字平方,然后它计算它们如下:
2 3 4
4 5 7
2 6 8 然后是count (2+5+8)-(4-5-2)并在屏幕上打印出来
error: invalid operands to binary + (have ‘int *’ and ‘int *’)对于表达式:
total2+=numbers[counter1]+numbers[counter2]; #include<stdio.h>
int main()
{
int scale;
scanf("%d",&scale);
int clone1=scale;
int clone2=scale;
int numbers[scale][scale];//scale of square we enter
int counter1=0;
int counter2=0;
while(clone2>0)
{
while(clone1>0)
{
scanf("%d",&numbers[counter1][counter2]);
counter2++;
clone1--;
}
clone1=scale;
counter2=0;
counter1++;
clone2--;
}
clone1=scale;
clone2=scale;
counter1=0;
int total1=0;
while(clone1>0)
{
total1= numbers[counter1] + numbers[counter1] + total1;
clone1--;
counter1++;
}
int total2=0;
counter1=0;
counter2=scale;
clone1=scale;
while(clone1>0)
{
total2= numbers[counter1] + numbers[counter2] + total2;
counter1++;
counter2--;
}
printf("%d",total1-total2);
return 0;
}发布于 2019-10-27 06:20:13
如果我理解正确的话,您希望计算方阵的det,在这种情况下,您应该将total1= numbers[counter1] + numbers[counter1] + total1;更改为numbers[counter1][counter1] + total1;,将total2= numbers[counter1] + numbers[counter2] + total2;更改为total2= numbers[counter1][counter2] + total2;。在您的版本中,您实际上是在尝试添加行指针,而不是计数器位置的值。在最后一个循环中,您还希望减少clone1,否则它将永远停留在循环中,因为它永远不会达到0。
发布于 2019-10-27 06:23:35
numbers[counter1]和numbers[counter2]各自引用长度为scale的行整数。该行的类型为int* (指向整数行的指针)。+操作数对单个整数(int)进行操作。
要修复您的代码,您需要:
total1 += numbers[counter1][counter1] ;和
total2 += numbers[counter1][counter2] ;我认为-很难确定是否还有其他问题,因为你似乎把一个简单的问题搞得很复杂。我建议:
int leading_diagonal = 0 ;
int trailing_diagonal = 0 ;
for( int i = 0; i < scale; i++ )
{
leading_diagonal += numbers[i][i] ;
trailing_diagonal += numbers[i][scale-1-i] ;
}
printf( "%d\n", leading_diagonal - trailing_diagonal ) ;然而,尽管您的示例需要(2+5+8)-(4-5-2),但您的代码似乎是在尝试评估(2+5+8)-(4+5+2)。如果您的示例实际上是正确的,并且是您想要的,那么:
int leading_diagonal = numbers[0][0] ;
int trailing_diagonal = numbers[0][scale-1] ;
for( int i = 1; i < scale; i++ )
{
leading_diagonal += numbers[i][i] ;
trailing_diagonal -= numbers[i][scale-1-i] ;
}
printf( "%d\n", leading_diagonal - trailing_diagonal ) ;https://stackoverflow.com/questions/58573303
复制相似问题