【新人给大家拜年了】请教一个问题
最近在自学C语言,遇到好多问题。这是一个数学题:任意一个自然数的三次方能写成连续奇数和的形式。
#include<stdio.h>
#include<stdlib.h>
void main()
{
int b,c;
int a;
BG: printf("Please enter an integer number: ");
scanf("%d",&a);
if(a>0&&a<=50)
{
printf("The opration result is:\n\t%d^3=",a);
for(c=a-1;c<a;c++)
{
for(b=(a*a-a+1);b<=(a*a+a-1);b=b+2)
{
printf("%d",b);
if(!(b==(a*a+a-1)))
printf("+");
else
break;
}
}
printf("\n\n");
goto BG;
}
else
{
printf("You entered an error number!\n");
a=0;
goto BG;
}
}
现在问题是如果输入字符(如:abc)则a清零后,返回BG,跳过scanf函数,从而形成死循环,请问这是怎么回事?
如何解决呢?