当前位置: 代码迷 >> C语言 >> GOTO语句,用什么代替?
  详细解决方案

GOTO语句,用什么代替?

热度:650   发布时间:2008-01-30 22:13:57.0
GOTO语句,用什么代替?
求平均数的案例,自己写的程序,TC下运行通过。也不知道在别的编译器下是否可行。请各位(尤其是雨中飞燕、孔明等),莫记前嫌,一码归一码,帮我看看 。另外书上说GOTO语句尽量少用或者不用,那么这个代码中的GOTO语句可以用什么代替循环呢?各位给出个思路就可以。

谢谢各位,在百忙之中帮我解决一下,不胜涕零~
#include<stdio.h>
float zd=0,zx;
float average(float fensu[],int n)
{
  int i;
  float zf=fensu[i];
  zd=zx=fensu[1];
  for(i=1;i<=n;i++)
  {
    zf+=fensu[i];
    if(zd<fensu[i])
      zd=fensu[i];
    if(zx>fensu[i])
      zx=fensu[i];
  }
  return zf/n;
}
int main()
{
  float pjf,fensu[1000];
  int i,j;
  fh:printf("请输入学生的人数:");
  scanf("%d",&i);
  if(i<=1000)
{
  printf("**************************************************\n");
  for(j=1;j<=i;j++)
  {
    printf("请输入第%d个同学的分数:\n",j);
    scanf("%f",&fensu[j]);
  }
  printf("**************************************************\n");
  pjf=average(fensu,i);
  printf("最大分为%.2f\n 最小分为%.2f\n 平均分为%.2f\n",zd,zx,pjf);
  printf("**************************************************\n");
}
  else
{
  printf("请输入1000以内的数字!");
  goto fh;
}
  getch();
}
搜索更多相关的解决方案: GOTO  语句  代替  

----------------解决方案--------------------------------------------------------
while(1){
printf("请输入学生的人数:");
  scanf("%d",&i);
  if(i<=1000)
{
  printf("**************************************************\n");
  for(j=1;j<=i;j++)
  {
    printf("请输入第%d个同学的分数:\n",j);
    scanf("%f",&fensu[j]);
  }
  printf("**************************************************\n");
  pjf=average(fensu,i);
  printf("最大分为%.2f\n 最小分为%.2f\n 平均分为%.2f\n",zd,zx,pjf);
  printf("**************************************************\n");
break;
}
  else
{
  printf("请输入1000以内的数字!");
}
}

懒得排版
----------------解决方案--------------------------------------------------------
楼主 无耻

[[it] 本帖最后由 外部三电铃 于 2008-1-30 22:35 编辑 [/it]]
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]外部三电铃[/un] 在 2008-1-30 22:20 的发言:[/bo]

楼主 无耻

嘛。。。这个不懂,LS解释一下
----------------解决方案--------------------------------------------------------
......
  int i,j;
  do
  {
  printf("请输入学生的人数:");
  scanf("%d",&i);
  }while(i>1000);
  printf("**************************************************\n");
......

当然,这样少了一句提示小于1000的话,可以自己在里面加个if
----------------解决方案--------------------------------------------------------
谢谢飞燕及5楼的哥们,十分感激。对于外部三电铃朋友的评语,偶就收下了,不管它是真实的还是捏造的,有则改之,无则加勉。
----------------解决方案--------------------------------------------------------

----------------解决方案--------------------------------------------------------