我正在尝试学习c,所以我一直在试图弄清楚为什么最近2个小时我有细分错误;在纸上看起来代码应该可以工作。
因此,该过程的目的是要求用户输入堆中所需的大小,然后要求他们输入数字,但是数字必须唯一。
如果这是缩进的代码,请原谅,我仍然是初学者
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 #%d\n" , count+1) ;
scanf ("%d" , &input) ;
if (count != 0)
while (t<= t+count-1)
{
if (*t == input)
{
printf ("You have entered %d already\n", input);
printf("Enter value #%d\n" , count+1) ;
scanf ("%d" , &input) ;
t = c ;
}
else
t++;
}
t = c ;
c[count] = input ;
sum += c[count] ;
count ++ ;
}
答案 0 :(得分:3)
应该是
while (t<= c+count-1)
代替
while (t<= t+count-1)
后一种情况总是正确的。