C код для нахождения среднего значения, режима и медианы двух пользовательских массивов ввода - PullRequest
0 голосов
/ 01 марта 2020

У меня около 100 строк, и код работает, но значения неверны, есть идеи, как это исправить?


#include <stdio.h>
#include <stdlib.h>
#define size 6
#define size2 6
float mean(int arr1[],int arr2[],int i,float *mn1,float *mn2){
  int sum1=0,sum2=0;
  for(i=0;i<=5;i++){
      sum1=sum1+arr1[i];
      sum2=sum2+arr2[i];
  }
  *mn1=sum1/6;
  *mn2=sum2/6;
}
int median(int arr1[],int arr2[],int n,int n2,float *median1,float *median2){

  if(n%2==0){
      *median1=(arr1[(n-1)/2]+arr1[n/2])/2.0;
  }
  else{
      *median1=arr1[n/2];
  }
      if(n2%2==0){
      *median2=(arr2[(n2-1)/2]+arr2[n2/2])/2.0;
  }
  else{
      *median2=arr2[n2/2];
  }
  return *median2;
  return *median1;
}
int mode(int arr1[],int arr2[],int i,int q,int *max,int *max2){
  int xs[1000]={0};
  int xs2[1000]={0};
  for(i=0;i<6;i++){
      xs[arr1[i]]++;
      if(xs[arr1[i]]>*max){
          *max=xs[arr1[i]];
      }
  }
  for(q=0;q<6;q++){
      xs2[arr2[q]]++;
      if(xs2[arr2[q]]>*max2){
          *max2=xs2[arr2[i]];
      }
  }
  return *max;
  return *max2;
}
int main()
{
  float mn1=0.0,mn2=0.0;
  int arr1[size],arr2[size2];
  int i=0,q=0,temp,n=6,n2=6;
  float median1=0.0;
  float median2=0.0;
  int max=0,max2=0;
  printf("please fill array 1: ");
  for(i=0;i<size;i++){
      scanf("%d",&arr1[i]);
  }
      printf("please fill array 2: ");
  for(i=0;i<size2;i++){
      scanf("%d",&arr2[i]);
  }
   for(i=0 ; i<size ; i++){
      for(q=0 ; q<size-1 ; q++){
          if(arr1[q]>arr1[q+1]){
              temp=arr1[q];
              arr1[q]=arr1[q+1];
              arr1[q+1]=temp;}}}
   for(i=0 ; i<size2 ; i++){
      for(q=0 ; q<size2-1 ; q++){
          if(arr2[q]>arr2[q+1]){
              temp=arr2[q];
              arr2[q]=arr2[q+1];
              arr2[q+1]=temp;}}}
              if(mn1&&median1&&max>mn2&&median2&&max2){
                  printf("You're playing more video games you have to spent more time studying.\n ");
              }
             else{
                  printf("Good, you're spending considerable time in studying.\n");
              }
  mn1=mean( arr1, arr2, i, &mn1, &mn2);
  mn2=mean( arr1, arr2, i, &mn1, &mn2);
  median1=median( arr1, arr2, n, n2, &median1, &median2);
  median2=median( arr1, arr2, n, n2, &median1, &median2);
  max=mode( arr1, arr2, i, q, &max, &max2);
  max2=mode( arr1, arr2, i, q, &max, &max2);
  printf("\nMean of arr1 is: %0.1f\t Median of arr1 is:%0.1f\t Mode of arr1 is: %d\n",mn1,median1,max);
  printf("\nMean of arr2 is: %0.1f\t Median of arr2 is:%0.1f\t Mode of arr2 is: %d\n",mn2,median2,max2);
  return 0;
  return 0;
}

, если я введу цифры 4 5 5 2 8 9 для arr1 и числа 2 3 1 4 8 4 для arr2 Я получаю это

Среднее значение arr1: 5.0 Среднее значение arr1: 5.0 Режим arr1: 2

Среднее значение arr2: 1. Медиана arr2: 3,0 Режим arr2: 2

...