C语言怎样编写程序运行完后,不自动结束,而是返回程序的开始???

C语言怎样编写程序运行完后,不自动结束,而是返回程序的开始???,第1张

在需要程序重启的地方加上一句goto

sign;

在程序开始的地方加上sign:

//sign只是一个符号可以自行取

不理解可以百度一下goto语句的用法

分类: 电脑/网络 >>程序设计 >>其他编程语言

问题描述:

C语言问题-如何让程序返回开始,再运行.不自动关闭.

以此程序为例:

#include<stdio.h>

#include<math.h>

double X=-1,Y=3

void main()

{char a

double f1 (double x1,double x2)

double f2 (double x1,double x2)

printf("割线递归求根\n\n1.求方程一在区间[-1,3]上的根.\n2.求方程二在区间[-1,3]上的根.\n输入选项:")

a=getchar()

switch(a)

{case'1':printf("\n方程1在区间[-1,3]上的根为%f\n\n",f1(X,Y))break

case'2':printf("\n方程2在区间[-1,3]上的根为%f\n\n",f2(X,Y))

}}

double f1 (double x1,double x2)/*割线递归法求根*/

{double y1,y2,x0,y0

y1=2*x1*x1*x1-4*x1*x1+3*x1-6

y2=2*x2*x2*x2-4*x2*x2+3*x2-6

x0=(0-y1)*(x1-x2)/(y1-y2)+x1

y0=2*x0*x0*x0-4*x0*x0+3*x0-6

if(fabs(y0)<1e-5) return x0

else x1=x0return f1(x1,x2)

}

double f2 (double x1,double x2)/*割线递归法求根*/

{double y1,y2,x0,y0

y1=x1*x1*x1-8*x1-2

y2=x2*x2*x2-8*x2-2

x0=(0-y1)*(x1-x2)/(y1-y2)+x1

y0=x0*x0*x0-8*x0-2

if(fabs(y0)<1e-5) return x0

else x1=x0return f2(x1,x2)}

解析:

那我就来评论一下~各位不要见怪丫~

shenxian1021用了goto,虽然goto语句用起来十分方便,想干嘛就干嘛,但是很多程序员都十分痛恨goto语句,因为大规模的程序使用goto的话都很难读,相信楼主看的程序书或者上课老师讲课的话都听说过goto是用“臭名昭著”来形容的吧

ricardokaka和精灵现身de荒野都是while(true)加一个判断,不过大多数程序都是就算第一次进入也要给用户退出的权利吧-。-

如果一定要用户先选一个选项是不是有点霸道。。可能形容的不太准确。ricardokaka不要责怪我丫。。

我比较喜欢精灵的方式。个人见解~

ricardokaka有2个错误

printf("继续按Y,离开按其他键) 应该为printf("继续按Y,离开按其他键")少了分号和一个引号

k=getche()应该是getch()函数或者getchar()函数,拼写错误

还有,楼主的程序风格不是很好丫。。依据printf写了好多好多东西。。要改哦~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11158958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存