게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
C언어 프로그램 설계했는데, 프로그램이 돌아가질 않네요. ㅠㅠ
게시물ID : programmer_2089짧은주소 복사하기
작성자 : [유령]GE90
추천 : 0
조회수 : 1563회
댓글수 : 5개
등록시간 : 2014/03/24 17:44:53
일단 문제는 45도의 각도로 지면에서 하늘방향으로 공을 쏘아 올렸을때
공의 X, Y위치를 fprint와 fopen을 통해 txt 파일로 값들을 1000번 받는건데요.
코드 작성해서 오류가 없는데, 실행시키면 입력에서 넘어가질 않네요 ㅠㅠ
 
한번 코드 봐주시겠어요? 하루 꼬박 쏟아 부었는데 안되서 답답하네요 에휴
 
-----------------------------------------------------
 
#include <stdio.h>
#include <math.h> // sin과 cos, 속도를 계산하기 위하여 사용
#define Time_Period        10.000 // 프로그램 측정 시간 10초로 설정
#define One_Period         0.01   // 한 Period의 시간을 0.01초로 설정
#define V_Reduction_Ratio  0.70   // 튕긴 후 공의 속도 감소율
int main ()
{
 FILE*MEMO;        // Simulation의 Data 저장을 위한 외부 파일 설정
 fopen_s(&MEMO, "JungHyun_Data.txt", "wt");// 쓰기모드로 txt 파일을 생성하여 Data 저장
 
 double Disp_X = 0.0;            // 공의 X 위치를 나타내는 변수
 double Disp_Y = 0.0;            // 공의 Y 위치를 나타내는 변수
 double V_X = 0.0;               // 공의 X 속도를 나타내는 변수
 double V_Y = 0.0;               // 공의 Y 속도를 나타내는 변수
 double V_Initial = 0.0 ;    // 공의 초기속도 입력을 위한 변수 설정
 double B_Height = 0.0 ;     // Building Height 입력을 위한 변수 설정
 double Time_Segment = 0.0 ; // 0.01 Time Segment 이용을 위한 변수 설정
 double Gravity = -9.81; // 공이 초기에 위로 향하므로 중력가속도를 음수로 설정
 
 printf("공의 초기속도를 %3.5f 형태로 입력하세요 (단위 m/s) : ");
 scanf_s("%lf\n", &V_Initial);
 /*printf("Building Height를 %3.5f 형태로 입력하세요 (단위 m) : ");
 scanf("%lf\n", &B_Height);*/
                             // 초기조건 입력 설정
 for(Time_Segment=0.00 ; Time_Segment < Time_Period ; Time_Segment += 0.01)
 {
  V_X = V_Initial * cos((double)45);  // V의 X성분 구하기
  Disp_X=V_X * One_Period;            // 공의 X좌표 구하기
  V_Y = (V_Initial * sin((double)45)) + (Gravity * 0.01);           // V의 Y성분 구하기
  Disp_Y=(V_Y * One_Period) + ((1/2) * Gravity * One_Period * One_Period); /*+ B_Height*/;
  
  if(V_Y <= 0.000) // 공이 최고 지점에 달하게 되면 중력가속도의 방향이 바뀜을 설정
  {
   Gravity = (-1.00) * Gravity;
  }
  
  else if(Disp_Y <= 0.000)
  {
   Gravity = (-1.00) * Gravity;// 공이 지면에 튀기게 되면 중력가속도의 방향이 바뀜을 설정
   V_Initial = V_Initial * V_Reduction_Ratio;   // 지면에 공이 튀길때 마다 속도의 30% 손실
  }
  fprintf(MEMO, "시간 : %3.5f        거리 : %3.5f        높이 : %3.5f        \n", Time_Segment, Disp_X, Disp_Y);
 }

 fclose(MEMO);
 return 0;
}
 
논리 process의 오류가 있는건지, 함수를 잘못 쓴건지 도저히 모르겠어요...
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호