C-为什么我会得到细分错误:11



我正在尝试学习c,所以我一直在弄清楚为什么在过去两个小时内有分割故障;在纸上看起来代码应该起作用。

因此,该过程的目的是要求用户在堆中输入所需的大小,然后要求他们输入数字,但是数字必须是唯一的。

请原谅,如果这是缩进的代码,我仍然是初学者

int size ; // The size to allocate
int input ; // the number the user will enter from keyboard
int count  = 0 ; // how many numbers have been added

printf ("Enter the number of integers to process: n");
scanf ("%d" , &size) ;
int* t;
int* c= (int*)malloc (size* sizeof (int));
if ((t = c))
while (count<size)
{
  printf("Enter value #%dn" , count+1) ;
  scanf ("%d" , &input) ;
  if (count != 0)
  while (t<= t+count-1)
  {
      if (*t == input)
      {
         printf ("You have entered %d alreadyn", input);
         printf("Enter value #%dn" , count+1) ;
         scanf ("%d" , &input) ;
         t = c ;
      }
    else
     t++;
  }
  t = c ;
  c[count] = input ;
  sum += c[count] ;
  count ++ ;
}

应该是 while (t<= c+count-1) 代替 while (t<= t+count-1) 后一种情况始终是正确的。

相关内容

  • 没有找到相关文章

最新更新