注册 登录
编程论坛 C语言论坛

关于分队列空格的问题请教

我爱爱计算机 发布于 2023-04-27 17:43, 521 次点击
本人新手,要求输入一个正整数,然后按顺序进行编号,先从1开始,如:输入11,则编号为:1 3 5 7 9 11(注意,每两个数都用空格隔开,最后一个数后面没有空格)
我的代码可以实现奇数和偶数的正整数的排列,但是将它输入评测系统一直都是错误,烦请大佬们能帮我看看,指出我的错误
代码如下:
#include <stdio.h>
int main()
{
    int n=0,i=1;
    printf("请输入班级人数:");
    scanf("%d",&n);
    printf("%d",i);
    for(i=3;i<=n;i+=2){
        printf(" %d",i);
    }
    return 0;
}
只有本站会员才能查看附件,请 登录
6 回复
#2
东海ECS2023-04-27 19:15
根据你的描述,输出的最后一个数后面不能有空格。所以需要对输出的空格做一些处理。另外,题目要求从1开始编号,所以需要将初始化的i设为1,而非0。 修改后的代码如下:

#include <stdio.h>

int main() { int n=0,i=1; printf("请输入班级人数:"); scanf("%d",&n); printf("%d",i); for(i=3;i<=n;i+=2){ printf(" %d",i); if(i<n){ printf(" "); } } return 0; }

#3
我爱爱计算机2023-04-27 23:10
回复 2楼 东海ECS
大佬,已复制了你的程序,输入检测程序,结果错误,结果无任何变化,和解?
#4
rjsp2023-04-28 00:48
怎么会有 “printf("请输入班级人数:");” 这种自我强行加戏的行为?
#5
阳光上的桥2023-04-28 08:27
如果是解决问题、达到甲方要求的标准,你们的答案都是对的,自动改题的系统判断太机械了,有许多方法实现,改题程序只认一种,我们没必要去猜它究竟认哪一种,如果实在想猜,可以看看下面的输出方式(只用一个for循环,循环里面判断是否添加空格):

 for(i=1;i<=n;i+=2) {if (i!=1) printf(" ");printf("%d",i);}

有可能没办法猜,例如还可以用while来写
#6
不会游泳的虾2023-04-28 16:15
貌似这行多加了:printf("请输入班级人数:");
#7
我爱爱计算机2023-04-28 20:33
回复 5楼 阳光上的桥
好的,谢谢
1