こんにちは配列のいくつかの数字が同じ場合、エラーメッセージを出力するための関数の初期化に問題があります。関数が初期化されていません
#include<stdio.h>
#include<stdlib.h>
void printRepeating(int arr[], int size)
{
int i, j;
for(i = 0; i < size; i++)
for(j = i+1; j < size; j++)
if(arr[i] == arr[j])
printf("Wrong input. Same numbers in array!\n");
}
int main()
{
int arr[200],i;
int res, num;
while((res = scanf("%d", &num)) == 1)
{
arr[i++] = num;
if(num == 0){
break;
}
}
for(i = 0; i < arr[i]; i++)
printf("%d ", arr[i]);
printf("\n");
int arr_size = sizeof(arr[i])/sizeof(arr[0]);
printRepeating(arr, arr_size);
return 0;
}
私は1 2 3 1 4 5 0
をスキャンする場合、私の機能printRepeating
は、私は、なぜ配列に同一の番号1 1
を持っているにもかかわらず開始文句を言いませんか?もう1つの問題は、タイプ1 2 3 1 5 0
と入力すると1 2 3
しか印刷されません。たとえば、1 2 3 4 5 6 7 8 9 0
をスキャンすると、0以外のすべての数字が出力されます。
問題は解決しましたか?もしそうであれば、その答を合格とマークしてください。 @blackroad – Jarvis