C语言,翁恺第三周第二个测试题分队列,我写出来用dvc++运行了没问题,但是不得分是为什么呢?

C语言,翁恺的课程,第三周第二个测试题

题目是这样的

img

我写的是这样的

#include<stdio.h>

int main()
{
    int n = 0;
    int i = 0;
    int j = 0;
    scanf("%d",&n);
    for(i = 0;j < n - 1 ;i++) {
        printf("%d ",j = 2 * i + 1); 
    }
                //要求是最后一个没空格,我想的是直接退一格
        printf("\b");

    return 0;
}

然后交上去显示结果错误

img

想问一下各位,我哪里写的不对啊

---------------------------------------------------分割线---------------------------------------------------------------

感谢各位,问题找到了,一方面退格不会删除空格,只是光标退回去
另一方面循环体写的有点问题

#include <stdio.h>

int main(){
    int i = 0;
    int j = 0;
    int n = 0;
    
    scanf("%d",&n);
    
    if(n == 1){
        printf("1");
    } else {
        printf("1");
        if(n == 2) {
        } else{
        for(i = 1;j < n - 1;i++){
            printf(" %d",j = 2 * i + 1);
        }
        }
    }
    
    return 0;
}

这样就没问题了


int n;
    scanf("%d",&n);
    for(int i = 1;i<= n;i++)
    {
        if(i%2 == 1)
        {
            if(i == n || i== n-1)
            {
                printf("%d",i);
            }
            else
            {
                printf("%d ",i);
            }
        }
    }

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

可以试试这个

你看看你的那些错误的用例,你写的会输出正确的结果,但是格式对这个编译不一定能通过,比如结果需不要换行,