?? 1-20.c
字號:
#include "commtool.h"
typedef struct{
int n;
int *piA;
int x0;
}polyconst;
/*
ai可以為任意整數;
x0應為0或正整數;
*/
polyconst *getcst()
{
polyconst *pSpolycst;
int i;
pSpolycst = (polyconst *)malloc(sizeof(polyconst));
printf("Input n: ");
scanf("%d", &pSpolycst->n);
pSpolycst->piA = (int *)malloc((pSpolycst->n + 1) * sizeof(int));
printf("Input a0 - a%d(%d numbers in all): ", pSpolycst->n, pSpolycst->n+1);
for(i=0; i<=(pSpolycst->n); i++)
scanf("%d", &pSpolycst->piA[i]);
printf("Input x0: ");
scanf("%d", &(pSpolycst->x0));
printf("These numbers you input are:\nn: %d\n", pSpolycst->n);
for(i=0; i<=pSpolycst->n; i++)
printf("a%d: %d ", i, pSpolycst->piA[i]);
printf("\nx0: %d\n", pSpolycst->x0);
return pSpolycst;
}
/*
成功返回0。
*/
int polyvalue()
{
polyconst *pSpycst;
int iPn;
int i;
int x0i;
if((pSpycst = getcst()) == NULL){
werrlog(__FILE__, __LINE__, "%s", "get constant values fail.");
exit(1);
}
if(pSpycst->x0 == 0){
printf("pn: %d\n", 0);
return 0;
}
for(i=0; i<=pSpycst->n; i++){
//x0~i
if(i == 0)
x0i = 1;
else{
if(x0i < INT_MAX/pSpycst->x0){
x0i = x0i*pSpycst->x0;
}
else{
printf("x0~%d is too larger.\n", i);
exit(1);
}
}
//add ai*x0~i to iPn
if((pSpycst->piA[i] == 0) || (x0i < INT_MAX/pSpycst->piA[i])){
iPn += pSpycst->piA[i]*x0i;
printf("a%d*x0~%d: %d*%d=%d %d\n", i, i, pSpycst->piA[i], x0i,\
pSpycst->piA[i]*x0i, iPn);
}
else{
printf("x0~%d is too larger.\n", i);
exit(1);
}
}
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -