援助C语言需要N个数,但是要输入N+1个数之后按确定键才会执行下面的命令
救助C语言需要N个数,但是要输入N+1个数之后按确定键才会执行下面的命令
#include <stdio.h>
#include <stdlib.h>
struct queue
{
int data[100];
int head;
int tail;
};
int main()
{
struct queue q;
int i;
q.head=1;
q.tail=1;
for(i=1;i<=9;i++)
{
scanf("%d ",&q.data[q.tail]);
q.tail++;
}
while(q.head<q.tail)
{
printf("%d ",q.data[q.head]);
q.head++;
q.data[q.tail]=q.data[q.head];
q.tail++;
q.head++;
}
system("pause");
}
C语言需要N个数,但是要输入N+1个数之后按确定键才会执行下面的命令
比如我输入 1 2 3 4 5 6 7 8 9按下确定就执行下面的代码
但是在运行的时候要输入1 2 3 4 5 6 7 8 9加另外一个数字比如N,再按确定才执行下面的命令,但是这个N并不影响结果。
请问这是什么原因引起的,怎么解决这个问题呢,请大神指导。
------解决方案--------------------
scanf("%d ",&q.data[q.tail]);将输入格式%d后面的空格去掉,即改成"%d"
------解决方案--------------------
加了空格表示什么意思?
------解决方案--------------------
跳过输入后面的空白字符
------解决方案--------------------
+1
#include <stdio.h>
#include <stdlib.h>
struct queue
{
int data[100];
int head;
int tail;
};
int main()
{
struct queue q;
int i;
q.head=1;
q.tail=1;
for(i=1;i<=9;i++)
{
scanf("%d ",&q.data[q.tail]);
q.tail++;
}
while(q.head<q.tail)
{
printf("%d ",q.data[q.head]);
q.head++;
q.data[q.tail]=q.data[q.head];
q.tail++;
q.head++;
}
system("pause");
}
C语言需要N个数,但是要输入N+1个数之后按确定键才会执行下面的命令
比如我输入 1 2 3 4 5 6 7 8 9按下确定就执行下面的代码
但是在运行的时候要输入1 2 3 4 5 6 7 8 9加另外一个数字比如N,再按确定才执行下面的命令,但是这个N并不影响结果。
请问这是什么原因引起的,怎么解决这个问题呢,请大神指导。
------解决方案--------------------
scanf("%d ",&q.data[q.tail]);将输入格式%d后面的空格去掉,即改成"%d"
scanf("%d",&q.data[q.tail]);
------解决方案--------------------
加了空格表示什么意思?
------解决方案--------------------
跳过输入后面的空白字符
------解决方案--------------------
scanf("%d ",&q.data[q.tail]);将输入格式%d后面的空格去掉,即改成"%d"
scanf("%d",&q.data[q.tail]);