C语言,翁恺的课程,第三周第二个测试题
题目是这样的
我写的是这样的
#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;
}
然后交上去显示结果错误
想问一下各位,我哪里写的不对啊
---------------------------------------------------分割线---------------------------------------------------------------
感谢各位,问题找到了,一方面退格不会删除空格,只是光标退回去
另一方面循环体写的有点问题
#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;
}
可以试试这个
你看看你的那些错误的用例,你写的会输出正确的结果,但是格式对这个编译不一定能通过,比如结果需不要换行,