C-将INT与双阵列进行比较



我正在尝试学习C,我想制作一个程序,将我输入的数字与数组中的数字进行比较。唯一的问题是它实际上没有这样做。即使我键入来自该数组的数字,也表明该数字不是来自该数组的数字。

    #include <stdio.h>
    void getMark(int findMark, double crswk1[]);
    void changePartMark(double crswk1[], int findMark);
    int main()
    {
    int findMark;
    double crswk1[10]={67, 77, 80, 40};
    getMark(findMark, crswk1);
    changePartMark(crswk1, findMark);
}
void getMark(int findMark, double crswk1[])
{
    printf("Enter the mark you want to change: ");
    scanf("%d", &findMark);
}
void changePartMark(double crswk1[], int findMark)
{
    int i;
        if(findMark == crswk1[i])
            {
            printf("It is equal");
            }
        else
            {
            printf("It is not equal");
            }
}

您正在阅读的数字永远不会回到main函数中的findMark

void getMark(int findMark, double crswk1[])
{
    printf("Enter the mark you want to change: ");
    scanf("%d", &findMark);
}

此功能在本地参数findMark中保存一个值。因为C中的所有参数均按值传递,因此对呼叫者的更改不会反映出该局部变量,因此findMark中的CC_4永远不会更改。

您需要更改此功能才能采用``int

''
void getMark(int *findMark, double crswk1[])
{
    printf("Enter the mark you want to change: ");
    scanf("%d", findMark);
}

然后您从main调用此功能:

getMark(&findMark, crswk1);

通过传递findMark的地址,该函数可以写入该地址。

另外,您的changePartMark功能不会搜索整个数组。它仅查看索引i。但这是一个问题,因为您从未设置i

您需要循环遍历数组以检查您对数组中每个元素的值。

int i;
for (i=0; i<4 i++) {
    if(findMark == crswk1[i])
        {
        printf("It is equal");
        }
    else
        {
        printf("It is not equal");
        }
}

两个主要问题:

首先,您输入的数字永远不会传递。当你写

void getMark(int findMark, double crswk1[]) {
    printf("Enter the mark you want to change: ");
    scanf("%d", &findMark);
}

然后,您在本地副本findMark中读取该值,而不是呼叫者使用的值。顺便说一句:不使用crswk1;所以我建议写

int getMark() {
    int findMark = 0;
    printf("Enter the mark you want to change: ");
    scanf("%d", &findMark);
    return findMark;
}

第二,您的void changePartMark(double crswk1[], int findMark)缺少循环,并且i未初始化。代码看起来如下:

void changePartMark(double crswk1[], int findMark)
{
    for (int i=0; i<4; i++) {
        if(findMark == crswk1[i])
            {
            printf("It is equal");
            }
        else
            {
            printf("It is not equal");
            }
    }
}

相关内容

  • 没有找到相关文章

最新更新