煎果饼饼 2024-03-26 18:42 采纳率: 50%
浏览 11
已结题

程序设计入门c语言第三周练习:分队列

班级第一次列队,通常teacher会让同学按身高排成一列,然后1、2报数,喊到1的同学向前一 步,就这样,队伍就变成两列了。假设现在一个班级有n个同学,并且他们已经按身高排成 了一列,同学按身高从1到n编号,你能告诉我最后哪些编号的同学站在了第一列么?
输入格式:
输入一个正整数n,表示班级的人数。
输出格式:
按顺序输出所有在第一列的同学对应的编号,每两个编号之间用一个空格隔开,最后一个编号后面没有空格,。

输入样例

11

输出样例

1 3 5 7 9 11

#include<stdio.h>
int main()
{
    int n = 11;
    int i;
    scanf("%d", &n);
    for ( i=1; i<=n; i++ ) {
        if(i%2!=0){
            printf("%d",i);
            }
            if(i%2==0){
                printf(" ");
            }
        }
        
    return 0;
}
 

为什么我这样写还有程序输出格式问题,请问哪里有问题,求解

  • 写回答

2条回答 默认 最新

  • 关注

    煎果饼饼 晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    你的代码存在两个问题:

    1. 定义了一个固定的n值,而没有使用通过输入获取真正的班级人数n。
    2. 输出格式不正确,每两个编号之间需要用空格隔开,最后一个编号后面不能有空格。

    解决方案:

    1. 修改代码,通过scanf函数获取真正的班级人数n,替换掉代码开头的int n = 11
    2. 修改输出格式,使用一个if语句来判断是否为最后一个编号,如果不是则在编号后面加上一个空格。

    下面是修改后的代码:

    #include <stdio.h>
    
    int main() {
        int n;
        int i;
        scanf("%d", &n);
        for (i = 1; i <= n; i++) {
            if (i % 2 != 0) {
                printf("%d", i);
                if (i != n - 1) {
                    printf(" ");
                }
            }
        }
        
        return 0;
    }
    

    这样修改后,输出格式将会满足题目要求。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 创建了问题 3月26日

悬赏问题

  • ¥15 在matlab中Application Compiler后的软件无法打开
  • ¥15 想问一下STM32创建工程模板时遇到得问题
  • ¥15 Fiddler抓包443
  • ¥20 Qt Quick Android 项目报错及显示问题
  • ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
  • ¥15 oracleBIEE analytics
  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?
  • ¥15 centos7.9升级python3.0的问题
  • ¥15 安装CentOS6时卡住