ユーザーに値を要求する関数を作成しようとしています。値は、入力された最大値または最小値として保存されます。または、ユーザーが数値 < 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 ループに到達すると、しようとしていることを実行しなくなりました行う。前もって感謝します。この関数は、私が書いているより大きなプログラムの一部ですが、関係のないものはすべて切り取っています。