首页 > 解决方案 > 从标准输入读取整数到数组

问题描述

我目前正在开发一个程序,该程序通过使用 seq 从标准输入读取整数到数组。然后它在排序后找到中位数。但是,我在程序的一个部分遇到了困难。

序列 2 | ./中位数

使用上述输入的输出提供以下内容(1-4 是数组大小的计数器,10 是 argarray[0]):

1 2 3 4 10. 中位数为 29

void stdinreading(FILE *in)
{
  int temparray[1000];
  int c;
  int size=0;
  int middle;
  while ((c = getc(in)) != EOF)
    {
      temparray[size] = c;
      size++;
      printf("%d\n", size);
    }
  int argarray[size];
  for(int i=0;i<size;i++) argarray[i]=temparray[i];
  qsort(argarray,size,sizeof(int),sortingarr);
  if(size%2==0) middle = (argarray[(size-1)/2]+argarray[size/2])/2;
  else middle = argarray[size/2];
  printf("%2d" , argarray[0]);
  printf("\nThe median is");
  printf("%2d\n" , middle);
}

标签: carrays

解决方案


推荐阅读