안녕하세요, 입력으로 요소를 가져 오는 동안 두 개의 입력을받는 이유를 알 수 없습니다. TurboC 컴파일러, GCC에서이 코드를 시도했지만 동일한 오류가 발생했습니다.오류 입력을 가져 오는 중
#include <stdio.h>
int menu();
void bubble_short();
void selection_short();
int main()
{
int ch,j,n,a[100];
ch=menu();
switch (ch)
{
case 1:
{
bubble_short();
break;
}
case 2:
{
selection_short();
}
default :
break;
}
}
void bubble_short()
{
int i,j,n,a[100];
printf("Elements");
scanf("%d",&n);
for (j=0; j<n;j++)
{
scanf("%d",&a[j]);
}
for (i=0;i<n;i++)
{
for (j=0;j<n-1-i;j++)
{
if (a[j]>a[j+1])
{
a[j]=a[j]+a[j+1];
a[j+1]=a[j]-a[j+1];
a[j]=a[j]-a[j+1];
}
}
}
printf("the sorted elements are :\n");
for (i = 0; i < n; i++)
{
printf("%d\n",a[i]);
}
}
void selection_short()
{
int i,j,n,a[100],min;
printf("Elements");
scanf("%d",&n);
for (i = 0; i <n-1; ++i)
{
min=i;
for (j = 1+i; i < n; ++i)
{
if(a[min]>a[j])
min=j;
}
if(i!=min)
{
a[i]=a[i]+a[min];
a[min]=a[i]-a[min];;
a[i]=a[i]-a[min];;
}
}
printf("the shorted elements are :\n");
for (i = 0; i < n; ++i)
{
printf("%d\n",a[i]);
}
}
int menu()
{
int k;
printf("Enter the choice \n 1. bubble short \n 2. selectionshort");
scanf("\n %d ",&k);
return k;
}
안녕하세요, 입력으로 요소를 가져 오는 동안 두 개의 입력을받는 이유를 알 수 없습니다. TurboC 컴파일러, GCC에서이 코드를 시도했지만 동일한 오류가 발생했습니다.
출력
'무효 bubble_short (INT의 N)'->'무효 bubble_short (무효)' – BLUEPIXY
그 오류가 무엇인지? 너가 설명하면 너는 동일한 과실을 두번 얻는다. 우리가 당신 자신의 것으로 그것을보기 위해 당신의 장소에 가기를 바라십니까? 여기에 넣는 것이 더 쉬울 것이고 그것을 읽도록하겠습니다. –
여기에 C 파일을 첨부하고 있습니다. scanf가 printf보다 먼저 실행되는 이유를 모르겠습니다. 나는 여기에 완전한 코드를 붙이고있다. 그것을 실행 한 후에는 오직 하나의 입력을 받아 들여야하는데 2를 가져 가고 마지막 하나는 두 번째 scanf입니다. – akashmagrawal