#include <stdio.h>
#define MAX(a,b) (((a)>(b))?(a):(b))
#define MAX_DEGREE 101
typedef struct {
int degree;
float coef[MAX_DEGREE];
} polynomial;
polynomial poly_add1(polynomial A, polynomial B){
polynomial C;
int Apos=0, Bpos=0, Cpos=0;
int degree_a = A.degree;
int degree_b = B.degree;
C.degree = MAX(A.degree, B.degree);
while(Apos<=A.degree && Bpos<=B.degree){
if(degree_a>degree_b){
C.coef[Cpos++] = A.coef[Apos++];
degree_a--;
}
else if(degree_a == degree_b){
C.coef[Cpos++]=A.coef[Apos++]+B.coef[Bpos++];
degree_a--;
degree_b--;
}
else {
C.coef[Cpos++]=B.coef[Bpos++];
degree_b--;
}
}
return C;
}
main(){
polynomial a = {5, {3,6,0,0,0,10}};
polynomial b = {4, {7,0,5.0,1}};
polynomial c;
c = poly_add1(a,b);
}
1. 여기서 구조체 a,b,c 값 출력하려면 어떻게 해야 돼?
2. 그리고 위치지정 값이라고 Apos, Bpos, Cpos가 있잖아 while문에서 coef의 Apos++ 하면 어떤식으로 변화하는지 자세히좀 ㅠㅠ
이거 니가 안했지? 니가 안했으니까 이렇게 질문하는거겠지?
쿠항 C는 몰라요~~
예제야
개심심 // 배열만 알아도 pos가 어떻게 변하는지는 알텐데 ㅠㅠ
2번 답은 니가 f10 f11 눌러가며 찾아봐라
1번은 열심히해봐 ㅋㅋㅋ
잉여 // 그건 프로그램 진행과정이지 pos값이 어떤 식으로 변하는지는 안나오자나...Apos기준 초기값 0에서 while문 while(Apos<=A.degree && Bpos<=B.degree){ if(degree_a>degree_b){ C.coef[Cpos++] = A.coef[Apos++]; degree_a--; }
실행시에 A,degree가 5, B.dgree가 4이니까 첫번째 if문이 실행되는데 A.coef[Apos++] 값을 C.coef[C[pos++]에 넣어주는건 알겠는데 Pos 값이 0으로 잡혀있는데 멀 넣어준다는거야;;
c로쉽게풀어쓴자료구조책을보고있군 교수가결과물출력해서제출하라고했겠지 근데이소스에는 printf문이없지
즐쿰 // 과제 아니야 혼자 셤공부하다가 모르는거 물어보는중
내가 구조체를 잘 몰라서 어짜피 로직상으로 보면 구조체 C에 A + B값이 들어가는게 맞다는건 알겠는데 저기서 말하는 pos++가 어떤식으로 변하는지 모르겠어서
내가 일만안하면 확인해보는데 나도 잘하는놈이아니라 눈으론 역시 한계군
pos은배열주소말하는거야 그니깐 a b차수비교해서 큰차수를 첫번째주소에저장하고 다음주소로넘어가는거지
아...값이 아니라 주소였구나 ㅋㅋㅋ 어쩐지 이해가 안되더라니 ㅠㅠ
고마워 형ㅋㅋㅋ
그니깐이건 a b 배열에있는다항식을 덧셈해서 c에저장하는거야
응 그건 앎...배열이란걸 깜빡하고 [i] 사이 i값이 value인줄 알았엉;;
디버깅하는데 pos값이 왜 안나오냐 ㅋㅋㅋㅋ 디버깅할줄도 모르네
? / 내가 원래 c를 배운게 아니라 자바만 배워서 디버깅 몰라 ㅋㅋㅋ 비쥬얼 스튜디오 첨써보고 구조체랑 포인터 개념 존트 해깔림 ㅠ
? / 교수님이 포인터 주소 잡는다고 디버깅 하는건 봤는데 컴실에서 수업하는게 아니라 잘 모르겠음 ㅋ 단축기좀 알려줘~!
야...f10 f11하라니까 ㅋㅋㅋ 그리고 저게 배열인걸 몰랐다니 ㅋㅋㅋ 초잉여2해라 내가 초잉여니까 ㅋㅋㅋ
자바는 디버깅 없냐 ㅋㅋㅋㅋ
궂이 변명을 하자면 degree랑 coef를 같이 A라는 구조체에 넣어놔서 degree값 비교 나오고 coef의 배열 값 나오니까 [i]가 value인줄 안거지 ㅠㅠ 배열을 몰랐다는 이야기는 아니구 ㅋㅋㅋㅋ
? / 자바는 이클립스 쓰면 그냥 다 알아서 잡아주는데 무슨 디버깅?
어쨋든 모두모두 고마웡ㅋ
뭐 햇갈릴수도있지 ㅋㅋㅋㅋ 그래도 너 잉여니까 초잉여2해라 나도 잉여 너도 잉여 ㅋㅋㅋ
아이고...
나도c고자라서 지금요책으로배우는데 c교재하나랑 같이공부중 책이어렵게나온게아니라서 막히는건 c교재뒤적거리면 어지간한건 해결가능하더라
디버깅왜하냐는 또 처음들어보네 ㅋㅋㅋㅋ
Vb도 다잡아줘서 디버깅안해도 되겠다 ㅋㅋㅋ
꼭 디버깅하지 말고 sysout 으로 값 검출해서 한번씩한번씩 실행해라
두번해라