我该如何循环?

时间:2020-08-05 01:46:03

标签: c

  1. 编写一个程序,提示用户输入两个整数:num1和num2(其中 num1必须小于num2),然后使用while循环:

输出(即显示)num1和num2(含)之间的所有奇数。 输出num1和num2(“)之间的所有偶数之和。 输出num1和num2(“)之间的奇数平方的和。

例如:

输入2个数字(num1

我已经尝试解决了大约2个小时,这是我到目前为止的进展,我不知道从这里去哪里

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable:4996)
#include<math.h>


int main() {

    int num1,num2;

    printf("Enter 2 integers = ");
    scanf("%d%d", &num1, &num2);

    
        while (num1 < num2)

        num1++;

        if (num1 % 2 == 0) {
            printf("The even number are =%d\n", num1);


            }

        else{
            printf("The odd numbers are =%d\n", num1);
        
        }


    return 0;

}

2 个答案:

答案 0 :(得分:0)

您缺少{}来包装循环内容,请尝试:

 while (num1 < num2)
 {
        num1++;

        if (num1 % 2 == 0) {
            printf("The even number are =%d\n", num1);
        }

        else{
            printf("The odd numbers are =%d\n", num1);
        
        }
}

答案 1 :(得分:0)

您的while循环未包含正确的范围。注意,它显示为:

 while (num1 < num2)
     num1++;
     if ...

在循环中要重复的区域周围没有括号,因此循环主体只是语句num1++。如果将整个预期的循环体都用大括号括起来,则会得到看起来与预期输出更加一致的输出:

while (num1 < num2) {
    num1++;
    if (num1 % 2 == 0) {
        printf(...)
    } else {
        printf(...)
    }
}

您的代码中仍然存在一些剩余问题。首先,您立即递增num1,因此要输出的第一个值是num1 + 1,并且在调试时可能还会遇到其他问题。

这应该使您顺利完成练习。您将需要创建一些其他变量来跟踪要求打印的 sum (注意,您必须打印赔率的偶数和平方的 sum ,而不是各个值)。您可以借助更多的int变量来计算循环内的总和,并在循环后打印这些结果。