不知道哪里出错了

来源:百度知道 编辑:UC知道 时间:2024/06/07 14:16:03
输入3个字符到数组a[3]中,然后以int型输出
#include "stdio.h"
main()
{char a[3],i;
for(i=0;i<3;i++)
{
scanf("%c ",a[i]);
}
for(i=0;i<3;i++)
{
printf("%d ",a[i]);
}
}
在第一个for回圈里:for(i=0;i<3;i++)
这里进行循环是 i=0 然后 i=1 最后是 i=2 ,当 i=3 时,不符合条件,所以退出for,所以这里是进行了3次输入吧??
可是为什么我测试时却要输入4次呢??大家测试下看看。不懂啊。。。哪里弄错了??
#include "stdio.h"
main()
{int i;
char a[3];
for(i=0;i<3;i++)
{
scanf("%c ",&a[i]);
}
for(i=0;i<3;i++)
{
printf("%d ",a[i]);
}
}
这个才对,大家看这个,为什么要输入4次??for里满足条件的只有0,1,2啊

pocy改了,看这个。还是不行。还是要输入4次啊。。。
把 scanf("%c ",&a[i]); 改成 a[i]=getchar(); 就可以了。。。
我晕啊,为什么!!为什么呢!!!??

shenqq163兄没看我下面这个啊。。是啊,我也改了还是不行啊。。。。。。。倒是把scanf("%c ",&a[i]); 改成 a[i]=getchar(); 就正常了。。到底怎么回事啊。。

我把scanf("%c ",&a[i]); %c后面的空格去掉后就可以输入3次了,可是为什么?

你把i给定义错了.你定义的是字符型i他的值等于i-a+65 for循环没有起作用
你定义i的时候要把i定义为int i
#include "stdio.h"
main()
{char a[3];
int i;
for(i=0;i<3;i++)
{

scanf("%c ",a[i]); 应为scanf("%c ",&a[i]);
这个确实挺怪的,不过,据我所知像这种情况,scanf中的双引号之间确实不应该加也没加过空格。

*******************************
我添加的说明用注释括起来了
*******************************

输入3个字符到数组a[3]中,然后以int型输出
#include "stdio.h"
main()
{char a[3],i;
for(i=0;i<3;i++)
{
scanf("%c ",a[i]); /*这里应该是&a[i],因为是要取地址*/
}
for(i=0;i<3;i++)
{
printf("%d ",a[i]);
}
}
在第一个for回圈里:for(i=0;i<3;i++)
这里进行循环是 i=0 然后 i=1 最后是 i=2 ,当 i=3 时,不符合条件,所以退出for,所以这里是进行了3次输入吧??
可是为什么我测试时却要输入4次呢??大家测试下看看。不懂啊。。。哪里弄错了??
问题补充:#include "stdio.h"
main()
{int i;
char a[3];
for(i=0;i<3;i++)
{
scanf("%c ",&a[i]);
}