C语言 输入 字符串 作语句,能么?

来源:百度知道 编辑:UC知道 时间:2024/06/09 23:37:30
程序里面有个语句(注意,不是常数!),要由运行程序的人来 决定以及输入,而不是由编程人员预先设定。
请问有什么办法么?

#include<math.h>
#include<stdio.h>
main()
{
int x=1,y;
y= ?????? ;
/* 要输入的公式,比如输入 x*x+2*x+1 注意,是在运行程序的时候输入 */
printf("%d",y);

}

y=???; 就是要在程序运行的时候确定的(不是编写的时候)。
比如
输入 x*x+2*x+1,运行结果是4
输入 x*x+3*x+2,运行结果是6

很有难度,不一定能实现
还是希望高手帮忙!
谢谢!
不要光说原理,把具体语句编写出来就更好了!

输入以 x 为参数的,任意一元 初等函数方程

初等函数:包括 幂函数、指数函数、对数函数、三角函数、反三角函数,以及由这些函数复合而得的所有函数

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a, b, c;
int x = 1, y;
int i = 0;
char line[20];
gets(line);

a = x * x;

while (line[i++] != '+');

b = atoi(&line[i]) * x;

while (line[i++] != '+');

c = atoi(&line[i]);

y = a + b + c;

printf("%d\n", y);
return 0;
}

用到字符串的处理,对符号设置优先级,利用堆栈,应该就能实现你所要的功能

你所说的不可行,编程时就应确定好程序功能。
比如完成求解一元二次方程的解:
#include <stdio.h>
#include <math.h>
void main()
{ void root(double a, double b, double c);
double a, b, c;
printf("请输入一元二次方程的系数,用空格或者回车间隔:\n");
scanf("%lf%lf%lf",&a,&b,&c);
root(a,b,c);
}

void root(double a, double b, double c)
{ double disc, x1, x2, real , imag;
disc = b*b-4*a*c;
if(disc>0) { x1 = (-b+sqrt(disc))/(2*a);