コード例 #1
0
ファイル: main.c プロジェクト: wo646231194/DataStructure
Matrix * init(){
    int num=0,mx=1,my=1;//个数,行数,列数
    int value,index=0;//值,索引
    char c=' ';
    printf("--------生成稀疏矩阵--------\n");
    printf("请输入矩阵第一行,空格+分号 ;结束\n");
    Matrix * m = malloc(sizeof(Matrix));
    while (c!=';'){
        scanf("%d",&value);
        if(value!=0){
            m->data[num].i = mx;
            m->data[num].j = my;
            m->data[num].value = value;
            num++;//元素数量自加1
        }
        my++;//列自加1
        scanf("%c",&c);
    }
    m->mx = mx;
    m->my = my-2;
    m->num = num-1;
    printf("----矩阵列数为%d----\n",m->my);
    printf("请输入更多行,每一行以空格加分号 ;分割,e结束\n");
    mx = 2;my = 1;
    char s = ' ';
    while (s!='e'){
        init_row(m,mx);
        mx++;
        scanf("%c",&s);
    }
    return m;
}
コード例 #2
0
ファイル: main.c プロジェクト: JonHarder/gameOfLife
board init_board(int height, int width) {
  board b = malloc(sizeof(struct board_t));
  b->width = width;
  b->height = height;
  /* since cells is a 2d array of cells,
     each element of cells is an array of cells,
     or, cell*.  so we initialize cells memory
     to be the size of an array of cells multiplied
     by the number of rows there are
  */
  b->cells = malloc(sizeof(cell*)*height);
  int i;
  for(i = 0; i < height; i++) {
    b->cells[i] = init_row(width);
  }
  return b;
}
コード例 #3
0
RelTable::RelTable(QWidget * parent, ClassInstanceData * inst, bool visit)
    : MyTable(parent)
{
    const QList<SlotRel> & rels = inst->get_relations();

    setRowCount(rels.count());
    setColumnCount((visit) ? 5 : 6);
    setSelectionMode(QTableWidget::SingleSelection);
    //setSortingEnabled(true);

    setHorizontalHeaderLabel(0, tr("Class Inst."));
    setHorizontalHeaderLabel(1, tr("Role"));
    setHorizontalHeaderLabel(2, tr("kind"));
    setHorizontalHeaderLabel(3, tr("Role"));
    setHorizontalHeaderLabel(4, tr("Class Inst."));
    setHorizontalHeaderLabel(5, tr("Delete"));

    QString role = inst->get_browser_node()->get_name() + QString(":") +
            inst->get_class()->get_name();
    int row = 0;
    QList<SlotRel>::ConstIterator it;

    for (it = rels.begin(); it != rels.end(); ++it)
        init_row(*it, row++, role, visit);

    setColumnStretchable(1, TRUE);
    setColumnStretchable(3, TRUE);
    adjustColumn(0);
    adjustColumn(2);
    adjustColumn(4);

    if (! visit)
        adjustColumn(5);

    connect(this, SIGNAL(pressed(int, int, int, const QPoint &)),
            this, SLOT(button_pressed(int, int, int, const QPoint &)));
}
コード例 #4
0
ファイル: codon2pnds.c プロジェクト: mspopgen/pq-genetics
int main(int argc, char **argv)
{
  if (argc > 1 && strcmp(argv[1], "--help") == 0) {
    printf("Help!\n");
    exit(0);
  }
  
  if (argc > 1 && strcmp(argv[1], "--version") == 0) {
    pq_display_version();
    exit(0);
  }

  int i;
  int frm_multi;
  const char *cmd_defaults;
  struct SWrap Stat;
  
  void (*swrap_init)(struct SWrap *, int);

  frm_multi = PQ_PNDS_FRMT;
  swrap_init = PQ_PNDS_INIT;
  cmd_defaults = PQ_PNDS_DEFS;
  
  char *fname_aa;
  char *fname_syn;
  char default_fname_aa[] = "codon2aa";
  char default_fname_syn[] = "codon2syn";
  
  char default_fullpath_aa[1028];
  char default_fullpath_syn[1028];
  sprintf(default_fullpath_aa, "%s/%s", DATADIR, default_fname_aa);
  sprintf(default_fullpath_syn, "%s/%s", DATADIR, default_fname_syn);
  
  fname_aa = default_fullpath_aa;
  fname_syn = default_fullpath_syn;
  file2charHash(fname_aa, 128);
  file2doubleHash(fname_syn, 128);
  
  FILE *fp;
  
  int nargs;
  char **def_array;
  char defaults[128];
  
  int ncols;
  int nalleles;
  char buffer[PQ_LWIDTH];
  char delim = '\t';

  char chr[PQ_LCOL];
  char factor[PQ_LCOL];
  unsigned long long int startpos;

  unsigned long long int stoppos;
  unsigned long long int start_region;
  unsigned long long int stop_region;
  
  struct GenericRow row;

  int argc_wo_file;
  
  fp = stdin;
  argc_wo_file = argc;
  if (argc > 1 && access(argv[argc - 1], F_OK) != -1) {
    fp = fopen(argv[argc - 1], "r");
    argc_wo_file = argc - 1;
  }

  fgets(buffer, sizeof(buffer), fp);

  // add defaults but with dummy -k variable
  sprintf(defaults, cmd_defaults, 6);
  
  nargs = pq_countcols(defaults, " ");
  def_array = calloc(nargs, sizeof(char *));
  pq_str2array(def_array, defaults, nargs, " ");
  
  pq_init_args();
  pq_update_args(nargs, def_array);
  pq_update_args(argc_wo_file-1, argv+1);
  
  // space delimeters must be escaped on the command line (i.e. -d '\ ')
  delim = ((char *)pq_lookup_hash(&ARGHASH, "-d"))[1];
  ncols = pq_countcols(buffer, &delim);
  sprintf(defaults, cmd_defaults, ncols);
  pq_str2array(def_array, defaults, nargs, " ");
  
  pq_update_args(nargs, def_array);
  pq_update_args(argc_wo_file-1, argv+1);
  
  free(def_array);
  
  init_row(&row, ncols, CHROM, POS, FCOL);
  
  nalleles = frm_multi * NKARGS;
  swrap_init(&Stat, nalleles);

  row.update(&row, buffer, &delim);
  strcpy(chr, row.chrom(&row));
  strcpy(factor, row.factor(&row));
  start_region = row.pos(&row) - 1;
  
  goto POST_INIT;
  
  while (fgets(buffer, sizeof(buffer), fp)) {
    
    row.update(&row, buffer, &delim);

  POST_INIT:
    
    stoppos = row.pos(&row);
    startpos = stoppos - 1;
    
    if (strcmp(row.factor(&row), factor) != 0) {
      Stat.write(&Stat);
      printf("%s\t%llu\t%llu\t%s", chr, start_region, stop_region, factor);
      for (i = 0; i < Stat.nouts; i++) {
	printf("\t%s", (char *)Stat.outs[i]);
      }  
      printf("\n");
      Stat.clear(&Stat);      
      
      strcpy(factor, row.factor(&row));
      start_region = startpos;
      stop_region = stoppos;   
    }

    Stat.update(&Stat, row.array);
    
    stop_region = stoppos;
    strcpy(chr, row.chrom(&row));
  }

  Stat.write(&Stat);
  printf("%s\t%llu\t%llu\t%s", chr, start_region, stop_region, factor);
  for (i = 0; i < Stat.nouts; i++) {
    printf("\t%s", (char *)Stat.outs[i]);
  }
  printf("\n");
  Stat.clear(&Stat);

  pq_free_hash(&CODON_TO_NSYN);
  pq_free_hash(&CODON_TO_AMINO);
  pq_free_args();
  pq_swfree(&Stat);
  free_row(&row);
  fclose(fp);
  
  return 0;
}