3 回答
TA贡献1805条经验 获得超9个赞
第一次getchar()读走了你输入的字符,第二次读走了你第一次输入的回车,因为第一次你输入的回车留在缓冲区没有被读走,所以应该这样读走回车。
#include<stdio.h>
int main()
{
char t;
int a,b,c;
printf("Please enter s:\n");
r1: t=getchar();
getchar(); /*读走回车*/
if (t=='s')
{
printf("Please enter a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%f,b=%d,c=%d",&a,&b,&c);
}
else
{
printf("Please enter s:\n");
goto r1;
}
return 0;
}
TA贡献1856条经验 获得超5个赞
#include<stdio.h>
int main()
{
char t;
int a,b,c;
r1: printf("Please enter s:\n");
t=getchar();
if (t=='s')
{
printf("Please enter a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%f,b=%d,c=%d",&a,&b,&c);
}
else
{
goto r1;
}
return 0;
}
TA贡献1862条经验 获得超7个赞
你应该是想要这个当输入S时打印
:Please enter a,b,c:
输入1 个数字时输出一行,2个数字时输出二行,3个......
按你输入的字长打出相应的行数。
===================================================
#include<stdio.h>
int main()
{
char t;
int a,b,c;
printf("Please enter s:\n");
r1: t=getchar();
if (t=='s')
{
printf("Please enter a,b,c:\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%f,b=%d,c=%d",&a,&b,&c);
}else
{
if (t!=10){ printf("Please enter s:\n"); }
goto r1;
}
return 0;
}
- 3 回答
- 0 关注
- 140 浏览
添加回答
举报