이것은 내 코드이며 작동하지 않습니다.함수가 아무 값도 반환하지 않습니다.
상기 PREV 위치에 도착이 수행 하나에서 크거나 작은 경우 경우 해당 I 배열의 어느 시점에 도착의 이전 위치를 값 1
을 경우 반환해야하므로 모든 어레이 큰 다음 중 하나 그렇게 그 어떤 도움
#include <stdio.h>
#include <stdlib.h>
int Up_array(int *arr,int Size)
{
int i;
for(i=0;i<Size;i++)
if (arr[i] > arr[i+1])
{
return 0;
}
else if(arr[i] <= arr[i+1])
{
return 1;
}
}
void main()
{
int *arr,Size,i;
printf("please enter the size of the array\n");
scanf("%d",&Size);
arr=(int*)malloc(Size*sizeof(int));
printf("please enter the array\n");
for (i=0; i<Size ;i++)
scanf("%d",&arr[i]);
Up_array(arr,Size);
free(arr);
system("pause");
}
에서 [투어]를하시기 바랍니다 (https://stackoverflow.com/tour)이 [MCVE]를 작성하는 법을 배워야가 (https://stackoverflow.com/help/mcve) 및 [Rubber Duck] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)에 문의하십시오. 우리에게 * 구체적인 * 질문이 있습니까? –
'arr [i + 1]'는 어떤 점에서 UB를 호출 할 수 있습니다. 범위를 벗어나는'arr [Size]'와 같습니다. 현재 검사가 주어 지더라도 전체 배열은 처음 두 요소 만 검사하지 않고 루프에서 'return 1;'을 이동하여 'else if'를 없애고 루프를 for (i = 0; i <크기 -1, i ++)'. 나는 그것이 당신이 원하는 것을 할 것이라고 생각하지만, 질문으로부터 알기가 정말로 어렵다. – George
함수는 배열의 처음 두 원소를 검사한다. 왜냐하면 그것은'if'의 두 가지 분기를 반환하기 때문이다. – Barmar