⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1-20.c

📁 数据结构 严版 各章节c代码 自己写的(不全)。
💻 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 + -