我正在尝试学习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)
后一种情况始终是正确的。