喺呢种情况下,系唔系用goto先得架?

来源:百度知道 编辑:UC知道 时间:2024/07/02 03:40:48
我喺度学紧C语言而且觉得好得意(有趣)。宜家经已学到数组,但系始终有一个问题困扰住我,令我点都惗唔明。以我嘅水平睇嚟,个问题好似唔用goto就解决唔到。但我都听好多人话:goto会搞乱程序流程而且唔利于我哋初学者水平提高。所以我鬼好唔想用佢架啦。我知道喺度高手好多亦都好乐于助人嘅。今次亦请大家帮下手,去低个核突嘅goto啦。唔该(谢谢)!

问题:依次输入10个各不相同得的数给数组a 。若输入的数与之前输入过的数相重,则提示出错并要求重输,直至输入完成为止。

下面系我写嘅代码:

main()
{ int i,j;
double a[10],b;
for(i=0;i<10;i++)
{stop1:printf("Please input a number:\n");
scanf("%lf",&b);
for(j=0;j<i;j++)
{if b=a[j]
{printf("Same number!Please input again!\n");
goto stop1;
}
a[i]=b;
}
}
}
国语:“请帮我把此程序改成不用goto的,谢谢!”

//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
int i,j;
double a[10],b;
for(i=0;i<10;i++)
{
printf("Please input a number:\n");
scanf("%lf",&b);
for(j=0;j<i;j++)
if (b==a[j])
{
printf("Same number!Please input again!\n");
i--;
break;
}

if (j==i) a[i]=b;
}

return 0;
}
//---------------------------------------------------------------------------

不要说这个方言,不懂