C 函数未初始化
嗨,如果数组中的某些数字相同,我在初始化打印错误消息的函数时遇到问题C 函数未初始化,c,arrays,function,C,Arrays,Function,嗨,如果数组中的某些数字相同,我在初始化打印错误消息的函数时遇到问题 #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("W
#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;
}
#包括
#包括
无效打印重复(整数arr[],整数大小)
{
int i,j;
对于(i=0;i
如果我扫描
1 2 3 1 4 5 0
,我的功能printRepeating
不会启动,但是我的数组中有相同的数字1 1
,为什么?另一个问题是,当我键入123150
时,它只打印1230
,例如,当我扫描1234567890
时,它打印除0以外的所有数字。代码中存在多个问题。首先,将i
初始化为0
,并在i
旁边声明一个新变量j
int arr[200], i = 0, j;
数组的大小应该是i
,每次在数组中插入元素并更改此值时,数组的大小都会增加
for(i = 0; i < arr[i]; i++)
printf("%d ", arr[i]);
这条线
int arr_size = sizeof(arr[i])/sizeof(arr[0]);
没有达到你的期望。您只需将数组的两个元素的大小进行分割,这两个元素的大小始终相同,因此总是得到1
。如果要为函数指定元素数,请为其指定一个变量,在读取这些元素数时,使用该变量对每个元素进行计数
还包括:
for(i = 0; i < arr[i]; i++)
printf("%d ", arr[i]);
for(i=0;i
只打印不大于其索引的数字。同样,您的程序缺少一个用于计算输入值数量的变量。我想您的问题已经解决,如果它解决了您的问题,请标记此答案@黑道问题解决了吗?如果答案被接受,请将其标记为已接受@布莱克路
int arr_size = sizeof(arr[i])/sizeof(arr[0]);
for(i = 0; i < arr[i]; i++)
printf("%d ", arr[i]);