C 要求用户输入和命令以继续或停止。用户希望程序停止后,它会给用户在程序中输入的最大值和最小值?

C 要求用户输入和命令以继续或停止。用户希望程序停止后,它会给用户在程序中输入的最大值和最小值?,c,C,我试图编写一个程序,要求用户输入一个数字,然后询问用户是否想继续。如果响应为“是”,则程序将再次请求用户输入。如果响应为“否”,则程序将停止并向用户提供程序运行期间用户输入的最大值和最小值 这是我对这个问题的看法,它仍然不完整,可能是非常错误的 #include <stdio.h> int main() { float value, command, max, min; int a[100]; printf("Please enter t

我试图编写一个程序,要求用户输入一个数字,然后询问用户是否想继续。如果响应为“是”,则程序将再次请求用户输入。如果响应为“否”,则程序将停止并向用户提供程序运行期间用户输入的最大值和最小值

这是我对这个问题的看法,它仍然不完整,可能是非常错误的

#include <stdio.h>

int main()
{
    float value, command, max, min;
    int a[100];
    
    printf("Please enter the value: ");
    scanf("%f",value);
    
    printf("Do you want to continue?: ");
    scanf("%f",command);
    
    if (!strcmp(command, "yes")){
    printf("Please enter the value: ");
    scanf("%f",value);
    printf("Do you want to continue?: ");
    scanf("%f",command);    
    }
    
    if (!strcmp(command, "no")){
    max = a[0];
    min = a[0];

    for(int i=1; i<n; i++)
    {
        if(a[i]>max)
        {
            max = a[i];
        }


        if(a[i]<min)
        {
            min = a[i];
        }
    }
    } 
    
    printf("The maximum value is %f, and the minumum is %f",max,min);
    
    return 0;
}
#包括
int main()
{
浮点值,命令,最大值,最小值;
INTA[100];
printf(“请输入值:”);
scanf(“%f”,值);
printf(“是否要继续?:”;
scanf(“%f”,命令);
如果(!strcmp(命令,“是”)){
printf(“请输入值:”);
scanf(“%f”,值);
printf(“是否要继续?:”;
scanf(“%f”,命令);
}
如果(!strcmp(命令,“否”)){
max=a[0];
min=a[0];
对于(int i=1;imax)
{
max=a[i];
}
如果(a[i]
  • 若要处理任意数量的输入,请使用循环并在中测试新的最小值和最大值
  • scanf
    转换规范
    %f
    需要
    值的地址
  • 我们无法将
    命令
    字符串扫描为
    浮点
  • 我们通过
    printf
    转换规范
    %g
    获得的数字的给定输出格式
例如:

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

int main()
{
    float value, max = FLT_MIN, min = FLT_MAX;
    char command[4];
    do
    {
        printf("Please enter the value : "); scanf("%f", &value);
        if (value > max) max = value;
        if (value < min) min = value;
        printf("Do you want to continue : "); scanf("%3s", command);
    } while (strcmp(command, "no") != 0);
    printf("The maximum value was %g and the minumum is %g\n", max, min);
}
#包括
#包括
#包括
int main()
{
浮动值,最大值=浮动最小值,最小值=浮动最大值;
char命令[4];
做
{
printf(“请输入值:”;scanf(“%f”,&value);
如果(值>最大值)最大值=值;
如果(值<最小值)最小值=值;
printf(“是否继续:”;scanf(“%3s”,命令);
}while(strcmp(命令,“否”)!=0);
printf(“最大值为%g,最小值为%g\n”,最大值,最小值);
}

请注意,示例代码对于错误输入是不安全的。

Protip:
scanf(“%f”,value);
它应该是
scanf(“%f”,&value);
(注意一个符号和符号)。为什么
command
a
float
?它应该是一个字符串。此外,用
-Wall-Wextra
编译并阅读警告。提示:
scanf(“%f”,value);
应该生成警告。节省时间。启用所有警告或使用更好的编译器。