当前位置:首页 » 编程语言 » poly在c语言中是什么意思
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

poly在c语言中是什么意思

发布时间: 2022-08-11 22:15:57

c语言 poly函数

这个poly函数很奇怪啊,除了网络里有点介绍外,其他地方影都没有,我的c函数库里是没有这个东西,我怀疑他的存在性,个人见解

❷ C语言多项式

#include <stdio.h>
#define DEGREE_MAX 8
void get_poly(double coeff[], int *degree)
{
int i;
printf("please enter the biggest degree:");
scanf("%d", degree);
for (i = *degree; i >= 0; i--) {
printf("enter %d `s Coefficient:", i);
scanf("%lf", &coeff[i]);
}
printf("\nyour polynomial is:\n");
for (i = *degree; i >= 0; i--) {
printf("%.2lfX^%d%c", coeff[i], i, (i > 0?' ' : '\n'));
}
}
double eval_poly(const double coeff[], int degree, double x)
{
int i;
double m = x, ret = 0;
ret += coeff[0];
for (i = 1; i <= degree; i++) {
ret += coeff[i]*m;
m *= x;
}
return ret;
}
int main() {
double coeff[DEGREE_MAX],x;
int degree;
get_poly(coeff, °ree);
printf("\nplease enter X value:");
scanf("%lf", &x);
printf("the answer is %.2lf\n", eval_poly(coeff, degree, x));
return 0;
}

❸ C语言的数据结构问题,高手请进!

楼主说得没错,在这个函数里面p是这个链表的头节点地址,但是出了这个函数就不一定了。
如果 说 你是这样就不行 如下:
polyn *p;
reatpolyn(p,m);

要这样
polyn *p;
reatpolyn(&p,m); 申明函数写成这样
void creatpolyn(polyn **p,int m)
{
int i;
polyn *j;
// 这句没用去掉 h=(polyn*)malloc(sizeof(polyn));
*p=(polyn*)malloc(sizeof(polyn));
(*p)->next=NULL;
for(i=1;i<=m;++i)
{
j=(polyn*)malloc(sizeof(polyn));
scanf("%d%f",&j->coef,&j->expn);
j->next=(*p)->next;
(*p)->next=j;
}

}

使用双重指针,原理就是要利用函数来改变一个参数的值,就要传该参数的地址进去;

这里要改变p的值,就要传p的地址进去,但是p是指针类型,所以一个指向指针的指针作为参数传进去,定义函数像这样:creatpoly(polyn *(*p),int m);

❹ 在C语言中有那些函数名

仅仅为了获取函数名,就在函数体中嵌入硬编码的字符串,这种方法单调乏味还易导致错误,不如看一下怎样使用新的C99特性,在程序运行时获取函数名吧.对象反射库、调试工具及代码分析器,经常会需要在运行时访问函数的名称,直到不久前,唯一能完成此项任务并且可移植的方法,是手工在函数体内嵌入一个带有该函数名的硬编码字符串,不必说,这种方法非常单调无奇,并且容易导致错误。本文将要演示怎样使用新的C99特性,在运行时获取函数名。

那么怎样以编程的方式从当前运行的函数中得到函数名呢?

答案是:使用__FUNCTION__ 及相关宏。

引出问题

通常,在调试中最让人心烦的阶段,是不断地检查是否已调用了特定的函数。对此问题的解决方法,一般是添加一个cout或printf()——如果你使用C语言,如下所示:

void myfunc()
{
cout<<"myfunc()"<<endl;
//其他代码
}

通常在一个典型的工程中,会包含有数千个函数,要在每个函数中都加入一条这样的输出语句,无疑难过上“蜀山”啊,因此,需要有一种机制,可以自动地完成这项操作。

获取函数名

作为一个C++程序员,可能经常遇到 __TIME__、__FILE__、__DATE__ 这样的宏,它们会在编译时,分别转换为包含编译时间、处理的转换单元名称及当前时间的字符串。

在最新的ISO C标准中,如大家所知的C99,加入了另一个有用的、类似宏的表达式__func__,其会报告未修饰过的(也就是未裁剪过的)、正在被访问的函数名。请注意,__func__不是一个宏,因为预处理器对此函数一无所知;相反,它是作为一个隐式声明的常量字符数组实现的:

static const char __func__[] = "function-name";

在function-name处,为实际的函数名。为激活此特性,某些编译器需要使用特定的编译标志,请查看相应的编译器文档,以获取具体的资料。

有了它,我们可免去大多数通过手工修改,来显示函数名的苦差事,以上的例子可如下所示进行重写:

void myfunc()
{
cout<<"__FUNCTION__"<<endl;
}

官方C99标准为此目的定义的__func__标识符,确实值得大家关注,然而,ISO C++却不完全支持所有的C99扩展,因此,大多数的编译器提供商都使用 __FUNCTION__ 取而代之,而 __FUNCTION__ 通常是一个定义为 __func__ 的宏,之所以使用这个名字,是因为它已受到了大多数的广泛支持。

在Visual Studio 2005中,默认情况下,此特性是激活的,但不能与/EP和/P编译选项同时使用。请注意在IDE环境中,不能识别__func__ ,而要用__FUNCTION__ 代替。

Comeau的用户也应使用 __FUNCTION__ ,而不是 __func__ 。

C++ BuilderX的用户则应使用稍稍不同的名字:__FUNC__ 。

GCC 3.0及更高的版本同时支持 __func__ 和__FUNCTION__ 。

一旦可自动获取当前函数名,你可以定义一个如下所示显示任何函数名的函数:

void show_name(const char * name)
{
cout<<name<<endl;
}

void myfunc()
{
show_name(__FUNCTION__); //输出:myfunc
}

void foo()
{
show_name(__FUNCTION__); //输出:foo
}

因为 __FUNCTION__ 会在函数大括号开始之后就立即初始化,所以,foo()及myfunc()函数可在参数列表中安全地使用它,而不用担心重载。

签名与修饰名

__FUNCTION__ 特性最初是为C语言设计的,然而,C++程序员也会经常需要有关他们函数的额外信息,在Visual Studio 2005中,还支持另外两种非标准的扩展特性:__FUNCDNAME__ 与 __FUNCSIG__ ,其分别转译为一个函数的修饰名与签名。函数的修饰名非常有用,例如,在你想要检查两个编译器是否共享同样的ABI时,就可派得上用场,另外,它还能帮助你破解那些含义模糊的链接错误,甚至还可用它从一个DLL中调用另一个用C++链接的函数。在下例中,show_name()报告了函数的修饰名:

void myfunc()
{
show_name(__FUNCDNAME__); //输出:?myfunc@@YAXXZ
}

一个函数的签名由函数名、参数列表、返回类型、内含的命名空间组成。如果它是一个成员函数,它的类名和const/volatile限定符也将是签名的一部分。以下的代码演示了一个独立的函数与一个const成员函数签名间的不同之处,两个函数的名称、返回类型、参数完全相同:

void myfunc()
{
show_name(__FUNCSIG__); // void __cdecl myfunc(void)
}

struct S
{
void myfunc() const
{
show_name(__FUNCSIG__); //void __thiscall S::myfunc(void) const
}
};

❺ C语言定义问题,解释的详细点我多给分!我在看程序时经常看见这样的定义,如:void *creat(int n)

看书吧。。。
简单回答下。。。
比如每个人都有名字,但是名字相同不代表人相同,一个函数可以看成是一个地点。。。
在括号里面的void add_poly(KC *pa,KC *pb) 是指定的人(即数据),但是在
{
... KC *pa,*pb;
}里的只是另一个有着相同名字的人,不是你所要指定的人(即数据),两个的数据不一样。。。
另外加上一个*表示直接将这个人从另一个地点(函数)抓过来任你处置(专业点是传数据的存储地址,这样可以改变数据的值)。。。
没加就是只是将这个人(数据)的资料传过来,人并不在你的地盘(函数),你不能对数据进行修改,即使你说这个人是猪,但并不能改变他是人的事实,除非你加个*,这样你说他是啥就是啥了。。。(n【】是数组n的头指针)

❻ 在英文名字中,poly是什么意思

当它作为词的前缀时,表示多个、聚合的意思,比如poly ribosomes是多核糖体,polysaccharide是多糖

❼ fillpoly在c语言中什么意思

函数名: fillpoly
功 能: 画并填充一个多边形
用 法: void far fillpoly(int numpoints, int far *polypoints);
int numpoints:多边形边数
int far *polypoints:存储各顶点坐标的数组,每两个一组表示一个顶点的X,Y坐标
程序例:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int i, maxx, maxy;
/* our polygon array */
int poly[8];
/* initialize graphics, local variables */
initgraph(&gdriver, &gmode, "");
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk)
/* an error occurred */
{
printf("Graphics error: %s\n",
grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
/* terminate with an error code */
}
maxx = getmaxx();
maxy = getmaxy();
poly[0] = 20; /* 1st vertext */
poly[1] = maxy / 2;
poly[2] = maxx - 20; /* 2nd */
poly[3] = 20;
poly[4] = maxx - 50; /* 3rd */
poly[5] = maxy - 20;
/*
4th vertex. fillpoly automatically
closes the polygon.
*/
poly[6] = maxx / 2;
poly[7] = maxy / 2;
/* loop through the fill patterns */
for (i=EMPTY_FILL; i<USER_FILL; i++)
{
/* set fill pattern */
setfillstyle(i, getmaxcolor());
/* draw a filled polygon */
fillpoly(4, poly);
getch();
}
/* clean up */
closegraph();
return 0;
}

❽ 数据结构c语言版多项式管理,求大神解答

//链式存储实现多项式
#include <stdio.h>
#include <stdlib.h>
typedef struct term *link;
struct term
{
int c; //系数
int e; //指数
link next;
};
typedef struct
{
link head; //头指针
link tail; //尾指针
}*poly_t;

link TERM(int c, int e)
{
link t = malloc(sizeof *t);
t->c = c;
t->e = e;
t->next = NULL;
return t;
}

poly_t poly_init()
{
poly_t p = malloc(sizeof *p);
p->head = p->tail = TERM(0, 0);
return p;
}

void term_read(poly_t p)
{
int i, n;
int c, e;
scanf("%d\n", &n);
for(i = 0; i < n; i++)
{
scanf("%d_%d\n", &c, &e);
p->tail = p->tail->next = TERM(c, e);
}
}

poly_t poly_destory(poly_t p)
{
link t, x;
for(t = p->head; t; free(t), t = x)
x = t->next;
free(p);
return NULL;
}

void poly_show(poly_t p)
{
link t;
if(p->head == p->tail)
return;
for(t = p->head->next; t != p->tail; t = t->next)
{
printf("%dX^%d_%c_", (t->c > 0) ? (t->c) : (-t->c), t->e, (t->next->c > 0) ? '+' : '-');
}

❾ 在matlab中 poly是什么意思啊

poly可以用根构造多项式。如x指多项式的根,poly(x)就得到该多项式的系数和相应的指数
poly可以生成矩阵的特征多项式。如a为某一矩阵,poly(a)就能够得到该矩阵的特征多项式的各项系数