输入一批整数,以0结尾,找出最大值和最小值

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图

#include<stdio.h>

void main()

{
int x, max, min;

printf("请输入整数,以0结束");

scanf_s("%d", &x);

max = min = x;

while (x==0)

{
    if (max < x) max = x;

    if (min > x) min = x;

    while (x != 0);
    break;

}

printf("最大数是:%d,最小数是:%d\n", max, min);

}

运行结果及报错内容

输入一行整数结果运行出来最大值和最小值都是同一个数

我的解答思路和尝试过的方法
我想要达到的结果

输出最大值和最小值

#include <stdio.h>
int main(void)
{
    int ma = 0,mi = 0,res = 0;

    do
    {
        scanf("%d",&res);
        ma = ma > res? ma: res;
        mi = mi < res? mi: res;
    }
    while(res != 0);
    printf("最大值:%d\t最小值:%d\n",ma,mi);
    return 0;
}

img