How to add duplicated number in array please help me
int main()
{
int i, j, tmp=0;
int arr[10] = { 4, 7, 2, 4, 3, 1, 7, 9, 6, 5};
for(i = 0; i < 10; i++){
for(j = i + 1; j < 10; j++){
if(arr[i] == arr[j]){
printf("arr[%d] = %d = arr[%d] = %d\n", i, arr[i], j, arr[j]);
tmp++;
}
}
}
printf("\nSUM is %d\n", tmp + tmp);
return 0;
}
这是一个代码,我只能找到重复的数字,但我找不到数字的重复总和
答案 0 :(得分:1)
注意:您的问题看起来很混乱,因为您没有提供预期的输出。
当您找到重复值而不是递增时,应将值添加到tmp
。这样做也可以减少添加tmp
和tmp
的需要,虽然我不确定你的意图是什么。
int main()
{
int i, j, tmp=0;
int arr[10] = { 4, 7, 2, 4, 3, 1, 7, 9, 6, 5};
for(i = 0; i < 10; i++){
for(j = i + 1; j < 10; j++){
if(arr[i] == arr[j]){
printf("arr[%d] = %d = arr[%d] = %d\n", i, arr[i], j, arr[j]);
tmp += arr[i];
}
}
}
printf("\nSUM is %d\n", tmp);
return 0;
}
<强>输出强>
$ ./a.out
arr[0] = 4 = arr[3] = 4
arr[1] = 7 = arr[6] = 7
SUM is 11
简单地在循环中总结它们。
int main()
{
int i, j, tmp=0;
int arr[10] = { 4, 7, 2, 4, 3, 1, 7, 9, 6, 5};
for(i = 0; i < 10; i++){
for(j = i + 1; j < 10; j++){
if(arr[i] == arr[j]){
printf("arr[%d] = %d = arr[%d] = %d\n", i, arr[i], j, arr[j]);
printf("SUM is %d\n\n", arr[i] + arr[i]);
}
}
}
//printf("\nSUM is %d\n", tmp + tmp);
return 0;
}
<强>输出强>
$ ./a.out
arr[0] = 4 = arr[3] = 4
arr[1] = 7 = arr[6] = 7
SUM is 11
答案 1 :(得分:0)
你可以创建一个临时数组并通过遍历原始数组来添加它。对于原始数组中的每个数字,然后将其添加到临时数组。如果数字已经在临时数组中,那意味着它已经出现并且不要将它添加到临时数组中。一旦迭代原始数组中的所有元素,临时数组应该只包含唯一的数字。然后只需遍历更新的数组并将它们全部加起来。