鱼C论坛

 找回密码
 立即注册
查看: 1740|回复: 2

[已解决]请续写代码,要求打印出小于该整数的所有正偶数,偶数情况我已解决,差奇数情况

[复制链接]
发表于 2023-9-27 20:44:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
int main()
{
        int a;
        printf("请输入一个整数:");
        scanf("%d",&a);
       
       
        if(a%2==0){
                while(a>0){
                        printf("%d ",a);
                    a=a-2;
                }
                printf("\n");
        }
        else{
                while(a>0){
                       
                        a--;
                       
                        printf("%d ",a);
                       
                       
                }
        }
       
         
       
        return 0;
}
最佳答案
2023-9-27 20:45:01
续写代码:

根据题目要求,需要打印出小于该整数的所有正偶数。我们可以在原有的代码基础上进行修改,添加一个循环来输出所有的正偶数。
  1. #include <stdio.h>
  2. int main() {
  3.     int a;
  4.     printf("请输入一个整数:");
  5.     scanf("%d", &a);
  6.     if (a % 2 == 0) {
  7.         // 如果输入的是偶数,则直接输出所有偶数
  8.         while (a > 0) {
  9.             printf("%d ", a);
  10.             a = a - 2;
  11.         }
  12.         printf("\n");
  13.     } else {
  14.         // 如果输入的是奇数,则先输出最大的偶数,再输出所有偶数
  15.         int max_even = a - 1;
  16.         printf("%d ", max_even);
  17.         while (max_even > 0) {
  18.             max_even = max_even - 2;
  19.             printf("%d ", max_even);
  20.         }
  21.         printf("\n");
  22.     }
  23.     return 0;
  24. }
复制代码

修正后的代码中,在原有的if-else结构中,如果输入的是偶数,则直接使用while循环输出所有偶数,和原有的代码一致。如果输入的是奇数,则需要先输出最大的偶数,再输出所有偶数。在else语句块中,我们新增了一个变量max_even用来保存最大的偶数,即a-1,然后先输出最大的偶数,并在while循环中输出所有偶数。

输出示例:

输入:7

输出:6 4 2

希望能帮到你。如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-9-27 20:44:35 | 显示全部楼层
续写代码如下:

  1. #include <stdio.h>

  2. int main() {
  3.     int a;
  4.     printf("请输入一个整数:");
  5.     scanf("%d", &a);

  6.     if (a % 2 == 0) {
  7.         for (int i = a - 2; i > 0; i -= 2) {
  8.             printf("%d ", i);
  9.         }
  10.         printf("\n");
  11.     } else {
  12.         for (int i = a - 1; i > 0; i -= 2) {
  13.             printf("%d ", i);
  14.         }
  15.         printf("\n");
  16.     }

  17.     return 0;
  18. }
复制代码


在输入的整数为奇数的情况下,我们需要从该整数减一开始,每次减二,直到输出所有小于该整数的正奇数。因此,我们使用一个 for 循环,从 a-1 开始,每次减二,直到 i 大于 0。在输入的整数为偶数的情况下,我们可以直接使用原来的 while 循环输出小于该整数的所有正偶数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-27 20:45:01 | 显示全部楼层    本楼为最佳答案   
续写代码:

根据题目要求,需要打印出小于该整数的所有正偶数。我们可以在原有的代码基础上进行修改,添加一个循环来输出所有的正偶数。
  1. #include <stdio.h>
  2. int main() {
  3.     int a;
  4.     printf("请输入一个整数:");
  5.     scanf("%d", &a);
  6.     if (a % 2 == 0) {
  7.         // 如果输入的是偶数,则直接输出所有偶数
  8.         while (a > 0) {
  9.             printf("%d ", a);
  10.             a = a - 2;
  11.         }
  12.         printf("\n");
  13.     } else {
  14.         // 如果输入的是奇数,则先输出最大的偶数,再输出所有偶数
  15.         int max_even = a - 1;
  16.         printf("%d ", max_even);
  17.         while (max_even > 0) {
  18.             max_even = max_even - 2;
  19.             printf("%d ", max_even);
  20.         }
  21.         printf("\n");
  22.     }
  23.     return 0;
  24. }
复制代码

修正后的代码中,在原有的if-else结构中,如果输入的是偶数,则直接使用while循环输出所有偶数,和原有的代码一致。如果输入的是奇数,则需要先输出最大的偶数,再输出所有偶数。在else语句块中,我们新增了一个变量max_even用来保存最大的偶数,即a-1,然后先输出最大的偶数,并在while循环中输出所有偶数。

输出示例:

输入:7

输出:6 4 2

希望能帮到你。如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 04:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表