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写了好多好多东西。。要改哦~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)