代码错误求解答
#include <stdio.h>int main()
{
int i,big,sum;
bool g;
char Y,N;
COO:printf("请输入数值:\n");
scanf("%d",&big);
for(i=1,sum=0;i<=big;i++)
{
sum=i+sum;
}
printf("1加到%d的和为%d\n",big,sum);
printf("再次计算?(Y/N)\n");
scanf("%c",&g);
getchar ( );
if(g == Y)
{
goto COO;
}
else
{
return 0;
}
}
如上,输出结果“Y”时,直接结束,求解答 Y 应该用单引号扩住,代表一个字符。这样试试:
#include <stdio.h>
int main()
{
int i, big, sum;
bool g;
COO:
printf("请输入数值:\n");
scanf("%d", &big);
for (i = 1, sum = 0; i <= big; i++)
{
sum = i + sum;
}
printf("1加到%d的和为%d\n", big, sum);
printf("再次计算?(Y/N)\n");
scanf("%c", &g);
getchar();
if (g == 'Y')
{
goto COO;
}
else
{
return 0;
}
} zltzlt 发表于 2020-8-1 13:43
Y 应该用单引号扩住,代表一个字符。这样试试:
不行呢,应该是其他代码错误 122Ml 发表于 2020-8-1 13:44
不行呢,应该是其他代码错误
g 应该为 char 类型,而不是 bool
#include <stdio.h>
int main()
{
int i, big, sum;
char g;
COO:
printf("请输入数值:\n");
scanf("%d", &big);
for (i = 1, sum = 0; i <= big; i++)
{
sum = i + sum;
}
printf("1加到%d的和为%d\n", big, sum);
printf("再次计算?(Y/N)\n");
scanf("%c", &g);
getchar();
if (g == 'Y')
{
goto COO;
}
else
{
return 0;
}
} zltzlt 发表于 2020-8-1 13:45
g 应该为 char 类型,而不是 bool
确实如此,但运行依旧错误,应该是我goto自学还不过关吧(还没上课提前看了),先去学学再来理解 #include <stdio.h>
int main()
{
int i, big, sum;
char g;
COO:printf("请输入数值:\n");
scanf("%d",&big);
for(i=1,sum=0;i<=big;i++)
{
sum=i+sum;
}
printf("1加到%d的和为%d\n",big,sum);
printf("再次计算?(Y/N)\n");
getchar();//吃掉换行符
scanf("%c",&g);
getchar ( );
if(g == 'Y')
{
goto COO;
}
else
{
return 0;
}
} baige 发表于 2020-8-1 13:52
\n赋给g所以g不会等于Y就结束了 本帖最后由 baige 于 2020-8-1 13:58 编辑
122Ml 发表于 2020-8-1 13:48
确实如此,但运行依旧错误,应该是我goto自学还不过关吧(还没上课提前看了),先去学学再来理解
你getchar();写错地方了 zltzlt 发表于 2020-8-1 13:45
g 应该为 char 类型,而不是 bool
getchar();写在scanf("%c",&g);之前 122Ml 发表于 2020-8-1 13:48
确实如此,但运行依旧错误,应该是我goto自学还不过关吧(还没上课提前看了),先去学学再来理解
把楼上代码19行和20行换一下位置,用getchar()缓冲换行符
goto有时候挺方便的,但不知道为什么不推荐用{:10_256:} #include <stdio.h>
int main()
{
int i, big, sum;
char g;
COO:
printf("请输入数值:\n");
scanf("%d", &big);
for (i = 1, sum = 0; i <= big; i++)
{
sum = i + sum;
}
printf("1加到%d的和为%d\n", big, sum);
printf("再次计算?(Y/N)\n");
getchar();
scanf("%c", &g);
if (g == 'Y')
{
goto COO;
}
else
{
return 0;
}
} baige 发表于 2020-8-1 13:57
getchar();写在scanf("%c",&g);之前
谢啦!!☆⌒(*^-゜)v
页:
[1]