我需要让程序从两个数组中找到匹配的值,匹配元素的总和及其计数。我似乎做了第一个,但第二个给了我错误的总数。它应该是25但我得到14.最后我无法弄清楚如何获得匹配元素的计数。所有帮助表示赞赏。我的代码如下。
int main(int argc, char *argv[]) {
int a[] = {1,2,3,4,5,7,8};
int b[] = {1,2,3,4,6,7,8};
int i,j,sum,count;
for (i=0;i<7;i++)
{
enter code here
for (j=0;j<7;j++)
{
if (a[i] == b[j])
printf("Numbers match: %d\n",a[i]);
}
}
printf("--------------------------------\n");
if ( i == j )
sum= (i+j);
printf("Sum: %d\n",sum);
return 0;
}
答案 0 :(得分:0)
试试这个。假设两个阵列的大小相同。您需要将所有计数器(sum,count)设置为已知值(0),否则将包含垃圾。
#include <stdio.h>
int main(int argc, char *argv[]) {
int a[] = {1,2,3,4,5,7,8};
int b[] = {1,2,3,4,6,7,8};
int i,j,sum=0,count=0;
int numElements = sizeof(a)/sizeof(int);
for (i=0;i<numElements;i++)
{
for (j=0;j<numElements;j++)
{
if (a[i] == b[j]) {
printf("Numbers match: %d\n",a[i]);
count++;
sum += a[i];
}
}
}
printf("--------------------------------\n");
printf("Sum: %d\n",sum);
return 0;
}