C 为什么数组不';不能打印正确的数字吗?

C 为什么数组不';不能打印正确的数字吗?,c,C,以下代码: #include <stdio.h> int izbaciSveProste(int n, int x[], int y[]) { int i; int flag=0; for(i=2; i<n/2; i++) { if(n%i ==0) { flag =1; break; } } if(flag==1)

以下代码:

#include <stdio.h>

int izbaciSveProste(int n, int x[], int y[])
{
    int i;
    int flag=0;

    for(i=2; i<n/2; i++)
    {
        if(n%i ==0)
        {
            flag =1;
            break;
        }
    }
    if(flag==1)
        return 0;
    else
        return 1;
}

int main()
{
    int i,j,n,x[100],y[100];

    printf("Koliko elemenata zelite u polju?\n");
    scanf("%d", &n);

    printf("Enter elements in array:- ");
    for(i=0;i<n;i++)
    {
    scanf("%d",&x[i]);
    }

    int len = sizeof(x)/sizeof(x[0]);

    for(i=0; i<len; i++)
    {
        if(izbaciSveProste(x[i]))
        {
            for(j=i; j<len; j++)
            {
                x[j] = x[j+1];
            }
            i--;
            len--;
        }
    }
    printf("Elementi nakon brisanja su:\n");
    for(i=0; i<len; i++)
        printf("%d\n",y[i]);

    printf("\n");

    return 0;
}
#包括
整数izbaciSveProste(整数n,整数x[],整数y[]))
{
int i;
int标志=0;

对于(i=2;i,您的函数原型有3个参数:

int izbaciSveProste(int n, int x[], int y[])
调用该函数时,仅提供1:

if(izbaciSveProste(x[i]))
编译器希望获得所有3个

由于您的函数甚至不涉及这两个数组参数,您可以简单地将它们从函数定义中删除,只取1个整数

另一个问题:
您在循环中打印
y[i]
,但从未为该数组赋值。

您的函数
int-izbaciSveProste(int-n,int-x[],int-y[])
需要三个参数。您的代码
izbaciSveProste(x[i]
只传递一个参数。这还不够。编译器通过错误消息告诉您这一事实:

错误:函数“izbaciSveProste”的参数太少


计算它需要的参数数以及传递的参数数
。就我个人而言,我永远不会理解为什么人们认为答案太简单或太明显而不得不否决某个问题。添加一些评论、答案,或者编辑标题并进行建设性的提问。在提问之前,人们希望做一些我在OP的问题中没有发现的研究(我不反对投票人)这真的值得一个答案吗?最好投票结束这个问题。这是一个来自一个显然对这一切都不熟悉的人的合法问题。所以,是的,一个出于非邪恶目的的答案应该得到一个答案。@Gerhardh和我在前面的评论中写的一样,它打印空数组,即使我有意输入2,3素数numbers@Arthuoff你怎么知道输入“2,3素数”?另请参见我上次更新的paragraph@Gerhardh随机地,假设我想输入4个元素,然后输入:74,6,2,3,然后它应该将2,3重写为数组y[],并打印2,3和数组y[]有2个元素。我看到了你的最后一段,并更正了我的代码。是的,这是正确的,但它仍然不会打印任何内容,即使我输入2,3个素数