首页 > 解决方案 > 我正在尝试将文件读入数组并且代码不会输出。我相信这与我如何阅读文件有关

问题描述

我正在尝试读取一个文件,其中第一行告诉数组的大小,第二行是由制表符分隔的数组元素。从这个开始,偶数将首先在一个新数组中按升序排序,而赔率则按降序排列。到目前为止,我无法将其输出。任何人都可以帮忙吗?

int main(int argc, char* argv[]){
    int evenArray[20];
  
    int oddArray[20];
  
    int n;

    FILE *fp = fopen("array.txt","r");

    if(fp == NULL){
          return 0;
      }
        fscanf(fp,"%d\n",&n);
        
        int array[n];
        
        int i;
        
        int countOdd = 0;
        
        int countEven = 0;
        
        //Scans the Doc and inputs the numbers
        for(i = 0;i<n;i++)
        {
            fscanf(fp, "%d\t", &array[i]);
              if(array[i] % 2 == 0){
                    evenArray[countEven] = i;
                    countEven++;
                  }
                  else{
                      oddArray[countOdd] = i;
                      countOdd++;
                    }
        }
        fclose(fp);
        
        int final[n];
        
        ascendingInsertionSort(evenArray,countEven);
        
        descendingInsertionSort(oddArray,countOdd);
        
        int j;
        
        for ( j = 0; j < countEven; j++ ) {
              final[ j ] = evenArray[j];
           }
        
        int k;
        
        for ( k = countEven-1; k < n; k++ ) {
                 final[ k ] = oddArray[k];
              }
        
        int l;
        
        for (l = 0; l < n; l++ ) {
            printf("Element[%d] = %d\n", l, final[l] );
         }
    
        return 0;
    }

标签: arraysc

解决方案


推荐阅读