2021年1月6日星期三

Why the output of this c program gives diffrent result whenever i change the position of variable declaration?

Look at this c program, when I declare the "count" variable at beginning of program it gives incorrect result but gives correct when it declared inside first loop.(as it is shown), why is this happening?

(This source code is basically for count the frequency of elements in an array).

#include <stdio.h>         int main()  {    int arr[100], freq[100];  int size, i, j, count;    /* Input size of array */  printf("Enter size of array: ");  scanf("%d", &size);    /* Input elements in array */  printf("Enter elements in array: ");  for (i = 0; i < size; i++)  {      scanf("%d", &arr[i]);        /* Initially initialize frequencies to -1 */      freq[i] = -1;  }    for (i = 0; i < size; i++)  {      count = 1;      for (j = i + 1; j < size; j++)      {          /* If duplicate element is found */          if (arr[i] == arr[j])          {              count++;                /* Make sure not to count frequency of same element again */              freq[j] = 0;          }      }        /* If frequency of current element is not counted */      if (freq[i] != 0)      {          freq[i] = count;      }  }    /*   * Print frequency of each element   */  printf("\nFrequency of all elements of array : \n");  for (i = 0; i < size; i++)  {      if (freq[i] != 0)      {          printf("%d occurs %d times\n", arr[i], freq[i]);      }  }    return 0;  

}

https://stackoverflow.com/questions/65606102/why-the-output-of-this-c-program-gives-diffrent-result-whenever-i-change-the-pos January 07, 2021 at 11:03AM

没有评论:

发表评论