goto语句

/* 用goto语句组成循环结构计算1+2+...+100 */
main()
{int sum=0,i=1;
loop: sum+=i++;
if(i<101) goto loop;
printf("1+2+3...+100=%d\n",&sum);
}

执行结果是-54, 可正确答案是5050才对啊,我那里搞错了啊.
C语言
我改过来了
原程序变成:
main()
{int sum=0,i=1;
loop: sum+=i++;
if(i<101) goto loop;
printf("1+2+3...+100=%d\n",sum);
}

printf行中,sum前没有&号,(原来我有写的,所以错误。)呵呵,失误

goto语句也称为无条件转移语句,其一般格式如:goto 语句标号; 其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加半角冒号“:”。语句标号起标识语句的作用,与 goto 语句配合使用。

C语言不限制程序中使用标号的次数,但各标号不得重名。goto 语句的语义是改变程序流向, 转去执行语句标号所标识的语句。

goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。

但是,在结构化程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。

goto语句的争论

在20世纪60年代末和70年代初,关于 goto 语句的用法的争论比较激烈。主张从高级程序语言中去掉 goto 语句的人认为,goto 语句是对程序结构影响最大的一种有害的语句,他们的主要理由是: goto 语句使程序的静态结构和动态结构不一致,从而使程序难以理解,难以查错。

去掉 goto 语句后,可直接从程序结构上反映程序运行的过程。这样,不仅使程序结构清晰,便于理解,便于查错,而且也有利于程序的正确性证明。

持反对意见的人认为, goto 语句使用起来比较灵活,而且有些情形能提高程序的效率。若完全删去 goto 语句,有些情形反而会使程序过于复杂,增加一些不必要的计算量。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-21
程序写的没问题啊
第2个回答  2009-09-21
你看一下是不是越界了,即计算机计算的值是否超出了int 的范围本回答被提问者采纳
相似回答