게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
코드 스타일 교정을 받고싶습니다.
게시물ID : programmer_1648짧은주소 복사하기
작성자 : 최강초코파이
추천 : 1
조회수 : 893회
댓글수 : 12개
등록시간 : 2014/03/07 22:40:39
안녕하세요. 저는 컴퓨터공학부 2학년생입니다...
이번에 복학해가지고 굳은머리 어떻게든 복원시키려 열심히 C언어 공부를 하고있습니다 ㅠㅠ
근데 제가 이 프로그래밍 언어 쪽을 좋아하는지라 복학얼마전에 인터넷에서 진짜 C언어 경지에 오른 사람들의 코드를 찾아봤었습니다...
"우와...이렇게도 생각할수있구나" 가 아니고
"....?? 이게 C언어야?" 라는 생각이 들더군요.
정말 아직도 많이많이 멀은것같습니다.
그래서 여쭤보고 싶은게 있습니다.
아래 제가 짠 코딩 스타일을 봐주시고 이것만은 방해되는 안좋은 버릇이자 스타일이다! 이렇게 고쳐라!  이런것과
C언어 코딩 고수분들의 실력이 되려면 어떻게 어떻게 공부를 해라.(모호한 질문같지만 ㅠㅠ 이 글을 봐주시는 고수님들께서 아래 코드를 보시면
아 얘는 어느 수준이구나 딱 느낌이 잡히실거같아서...그래서 여쭤보는겁니다 ㅠㅠ)
을 부탁드립니다.
 
 
 
 
 
//자동차의 연비를 계산하는 프로그램을 작성하여 보자. 사용자로부터 출발한 지점의 주행거리계의
//눈금과 도착한 지점에서의 주행 거리계의 눈금을 입력받는다. 또한 사용한 연료의 양을
//입력받는다. 자동차의 연비를 계산하여 화면에 출력한다.
#include <stdio.h>
#include <stdlib.h> //system("pause") 를 쓰기위해 선언
#include <ctype.h> //atoi()를 쓰기위해 선언
#define STR_LEN 100
 
struct fuel_efficiency{
 char str[3][STR_LEN]; //텍스트 파일에서 세줄을 읽어 각각 저장할 다차원배열
 char a_to_i[3][10]; //str에서 끝에 숫자만 따로 집어넣을곳
 int point[3]; //str에서 a_to_i로 옮기기 위한 지점을 잡아주는 역할
 int source[3]; //a_to_i의 문자열을 int 값으로 바꿔서 하나씩 저장
};
 
void txt_check(fuel_efficiency *pTEST); //텍스트 파일에서 각 줄마다 수치가 있는곳을 point에 입력시키는 함수
void receive_source(fuel_efficiency *pTEST); //str->a_to_i->source로 값이 옮겨지는 함수
double calculate(fuel_efficiency *pTEST); //연비를 계산하기위한 함수
void print(double x); //출력을 위한 함수
 
int main(void){
 FILE *fp;
 fuel_efficiency test;
 int i;
 double fuel_efficiency;
 fp=fopen("fuel efficiency.txt","r"); // 출발한 지점의 주행 거리계 : 1234       <---텍스트 파일엔 이렇게 적혀있습니다.
 for(i=0;i<3;i++){                         // 도착한 지점의 주행 거리계 : 1274
  fgets(test.str[i],STR_LEN-1,fp); // 사용한 연료 : 10
 }
 txt_check(&test);
 receive_source(&test);
 fuel_efficiency=calculate(&test);
 print(fuel_efficiency);
 fclose(fp);
 system("pause");
 return 0;
}
 
void txt_check(fuel_efficiency *pTEST){
 int i,j;
 for(i=0;i<3;i++){
  for(j=0;j<STR_LEN;j++){
   if(pTEST->str[i][j]==':'){ //텍스트내 ':'가 있는 곳을 찾아 그 값을 point변수에 집어넣는다
    pTEST->point[i]=j;
   }
  }
 }
}
 
void receive_source(fuel_efficiency *pTEST){
 int i,j;
 for(i=0;i<3;i++){
  for(j=pTEST->point[i]+2;pTEST->str[i][j]!='\0';j++){
   pTEST->a_to_i[i][j-pTEST->point[i]-2]=pTEST->str[i][j]; //point가 가리키는 곳부터 a_to_i배열에 집어넣고...
  }
  pTEST->source[i]=atoi(pTEST->a_to_i[i]); //a_to_i배열내 값들을 atoi 함수를 써서 int 데이터형으로 만들어 source배열에 각각 넣는다.
 }
}
 
double calculate(fuel_efficiency *pTEST){
 return (pTEST->source[1]-pTEST->source[0])/(double)pTEST->source[2]; //요건 그냥 연비 계산
}
 
void print(double x){
 printf("연비는 %.2f km/l 입니다.\n",x); //출력
}
 
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호