C语言编程函数调用问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 04:18:36
编译没问题
主函数调用fangcheng1(),fangcheng2()没结果了。
子函数单独运行都可以。
是不是函数调用一定要带个参数然后运算完又返回来啊?
请达人们帮忙改改错。

另外,运行完子函数了,若想返回重新在一次运行主函数怎么跳转?(像子函数里面有goto跳转重新运行子函数类似)

#include "stdio.h"
#include "math.h"

void fangcheng1();
void fangcheng2();

void main()
{
char in;
printf("解方程应用 \n\n您要解的方程是? \n");
printf("一元二次方程(yi)\n");
printf("二元一次方程(er)\n");
scanf("%c",&in);/*这里用来读上次的回车*/
scanf("%c",&in);
if(in=='yi') fangcheng1();
else if(in=='er') fangcheng2();
}

void fangcheng1()
{
cool:
printf("求一元二次方程ax^2+bx+c=0的根:\n");
printf("请分别输入a,b,c的值。\n");
double a,b,c,x1,x2,x,y;
char z,q;
printf("a=");
scanf("%lf",&a);
printf("b=");

char in;
if(in=='yi') -- 错了。char in 只能容纳 1 个 ASCII 符号。


char in[4];
printf("解方程应用 \n\n您要解的方程是? \n");
printf("一元二次方程(yi)\n");
printf("二元一次方程(er)\n");
scanf("%s",&in[0]);

if(strcmp(in,"yi") == 0 ) { fangcheng1();}
else if( strcmp(in,"er") == 0 ) {fangcheng2(); }
else {fangcheng3(); };

参考例子:

#include "stdio.h"
#include "math.h"
#include "string.h"

void fangcheng1();
void fangcheng2();

void main()
{
char in[3];
printf("解方程应用 \n\n您要解的方程是? \n");
printf("一元二次方程(yi)\n");
printf("二元一次方程(er)\n");
scanf("%s",in);

while (!strcmp(in, "yi") || !strcmp(in, "er"))
{
if (!strcmp(in, "yi"))
fangcheng1();<