簡體   English   中英

使用函數並從數組中檢查更大的值

[英]Using function and checking a greater value from arrays

我試圖使用數組創建一個函數並獲得更大的價值,但是我卻失敗了並獲得這些消息,有人可以幫助我嗎?

\\ Untitled4.c在函數“ main”中:

25 27 \\ Untitled4.c [警告]傳遞'quatroMaior'的參數1使指針從整數開始而沒有強制轉換

3 5 \\ Untitled4.c [注]預期為'int *',但參數的類型為'int'

#include <stdio.h>

int greater(int array[]) {
    int i, greater;

    for (i = 0; i < 4; i++) {
        if(array[i] > greater) {
            greater = array[i];
        }
    }

    return greater;
}

int main(void) {

    int j, v[4];

    printf("Type four values\n");

    for (j = 0; j < 4; j++) {
        scanf("%d", &v[j]);
    }

    printf("%d", greater(v[4]));

    system("pause");
    return 0;
}

正如約瑟夫在評論中所說,您傳遞的是整數,而不是數組。 您必須編寫greater(v)而不是greater(v[4])

接下來需要做的是將greater變量初始化為greater = 0

#include <stdio.h>

int greater(int array[])
{
    int i, greater = 0;

    for (i = 0; i < 4; i++)
    {
        if (array[i] > greater)
        {
            greater = array[i];
        }
    }

    return greater;
}

int main (void)
{
    int j, v[4];

    printf("Type four values\n");
    for (j = 0; j < 4; j++)
    {
        scanf("%d", &v[j]);
    }

    printf("%d\n", greater(v));

    return 0;
}
#include <stdio.h>

int greater(int array[]) {
    int i, greater;
/* greater is not init so you have an Undefined behavior.
** You could init it with array[0] but remind that need that size of array is at least 1.*/

    for (i = 0; i < 4; i++) { // If you do start at 1 because 0 is already in greater.
        if (array[i] > greater) { // here greater is not init !
            greater = array[i]; 
        }
    }

    return greater;
}

int main(void) {

    int j, v[4];

    printf("Type four values\n");

    for (j = 0; j < 4; j++) {
        scanf("%d", &v[j]);
    }

    printf("%d", greater(v[4]));
/* you send v[4] but you array has only range from 0 to 3.
** And is not what greater function expect he expect a array so just v.*/

    system("pause");
    return 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM