A:
-10.5 -1.8 3.5 6.3 7.2 E //사용자가 입력하는 부분입니다
B:
-1.8 3.1 6.3 E//사용자가 입력하는 부분입니다
merging A and B:
-10.50 -1.80 3.10 3.50 6.30 7.20
위에처럼 결과를 얻기 위해 아래의 소스코드를 이해해야하는데
프로그래밍 병신이라 뭔말인지 모르겠음ㅠㅠ
주요한 내용에 주석만 있으면 전체적으로 알것같은데...(진한 부분만 알면 되요)
혹시 도와주실분 계신가요??
댓글 달아주시면 제 메일주소 알려드릴게요
혹시 문제가 된다면 글삭하겠습니다.
#include <stdio.h>
int result(double A[], double B[], double merging[], const int n1, const int n2);
void main(void)
{
double A[50];
double B[50];
double merging[100];
int i,k,n1=0,n2=0, n3;
printf("A: \n");
for(i=0;i<50;i++)
{
if(scanf("%lf", &A[i]) == 0) //여기 왜 ==0 이 붙나요??
{
if(getchar()=='E')
break;
else
i--; //i--는 왜있지?ㅠ
}
}
n1 = i; //이부분의 의미는?
printf("B: \n");
for(i=0;i<50;i++)
{
if(scanf("%lf", &B[i]) == 0)
{
if(getchar()=='E')
break;
else
i--;
}
}
n2 = i;
n3 = result(A,B,merging, n1, n2);
printf("merging A and B: \n");
for (k=0;k<n3;k++)
printf("%.2lf ", merging[k]);
printf("\n");
}
int result(double A[], double B[], double merging[], const int n1, const int n2) // 이 함수부분 단계별로 간단하게 설명해주시면 감사하겠습니다.
{
int k = 0;
int i, j;
double temp;
for(i = 0; i < n1; i++)
{
for(j = 0; j < k; j++)
{
if(*(merging+j) == A[i])
break;
}
if(j == k)
*(merging+k++) = A[i];
}
for(i = 0; i < n2; i++)
{
for(j = 0; j < k; j++)
{
if(*(merging+j) == B[i])
break;
}
if(j == k)
*(merging+k++) = B[i];
}
for(i = 0; i < k-1; i++)
{
for(j = i+1; j < k; j++)
{
if(*(merging+i) > *(merging+j))
{
temp = *(merging+i);
*(merging+i) = *(merging+j);
*(merging+j) = temp;
}
}
}
return k;
}
댓글 0