0

ユーザーに値を要求する関数を作成しようとしています。値は、入力された最大値または最小値として保存されます。または、ユーザーが数値 < 0 を入力した場合、dataentry() 関数を終了します。ユーザーに入力を求め続けます。

#include <stdio.h>
#include <string.h>

void dataentry();

int count = 0;
float max, min, mean, old, new;
float data;
char Old[10],Data[10],choice[25];

int main(void)
{
    dataentry();
}

void dataentry()
{
    printf("  |Enter Wind Speed Value:\n");
    printf("**|Enter -1 to exit data entry mode|**\n");

    fgets(Old, sizeof(Old), stdin);
    sscanf(Old, "%f",&old);

    max = old;
    min = old;
    data = 1;
    count = 1;

    printf("max=%f, min=%f, data=%f, count=%d.", max, min, data, count);

    for (count == 1;data >= 0; count++)
    {
        printf("\nEnter data value: ");

        //fgets(Data, sizeof(Data), stdin);  // I commented this out because I got a coredump error with it in
        sscanf(Data,"%f", &data);
        if (data >= max)
        {
            max = data;
        }
        else if (data <= min && data > 0)
        {
            min = data;
        }
    }
}

プログラムが最初にデータを入力するように求めた後、for ループに到達する前に、プログラムが機能し、値を入力します。ただし、「データ値を入力してください:」を何度も印刷する無限ループに入ります。最大値、最小値、データ値、およびカウント値を出力する printf ステートメントを使用して、それらが保存されていることを確認できるようにしましたが、関数が for ループに到達すると、しようとしていることを実行しなくなりました行う。前もって感謝します。この関数は、私が書いているより大きなプログラムの一部ですが、関係のないものはすべて切り取っています。

4

1 に答える 1