C Prog - While循环

时间:2015-09-15 13:08:18

标签: c

嗨再一次,我发现自己陷入了编码困境。我找到了正确的代码,但我不明白为什么我的初始编码不起作用。有人能解释一下这个问题吗?

我的初始代码和可运行代码发布在下面。

INITIAL CODE(无法正常工作)

#include <stdio.h>
#include <conio.h>

int main(void)
{
   int counter;
   int num1, num2, smallest;

   counter = 1;

   printf("Enter first number:");
   scanf("%d", &num1);
   smallest = num1;

   while (counter <= 10) // User input phase
   {
      printf("Enter next numer:");
      scanf("%d", &num2);

      if (num1 < num2)
      {
         smallest = num1;
      }
      if (num2 < num1)
      {
         smallest = num2;
      }

      counter++;
   }

   printf("Smallest is %d", smallest);

   getch();
}

RUNNABLE CODE

#include <stdio.h>
#include <conio.h>

int main(void)

{
    int counter;
    int num1, smallest;

    counter = 1;


    printf("Enter first number:");
    scanf("%d", &num1);
    smallest = num1;

    while (counter <= 10) // User input phase
    {
        printf("Enter next numer:");
        scanf("%d", &num1);

        if (num1 < smallest)
        {
            smallest = num1;
        }
        if (smallest < num1)
        {
            smallest = smallest;
        }

            counter++;
    }

    printf("Smallest is %d", smallest);

    getch();
}

1 个答案:

答案 0 :(得分:1)

在您第一次尝试时,您可以保存每个循环最小的值,但是由于下一个循环将始终检查num1并在num2中输入新输入的数字,因此您可以将其删除。

在第二个代码中,工作一个,循环跟踪找到的最后一个最小值。

一点点,代码块

    if (num1 < smallest)
    {
        smallest = num1;
    }
    if (smallest < num1)
    {
        smallest = smallest;
    }

第二个if没有意义,你可以写

    if (num1 < smallest)
    {
        smallest = num1;
    }
    else
    {
        smallest = smallest;
    }

或更好

    if (num1 < smallest)
    {
        smallest = num1;
    }