많은 지적 부탁드립니다..
루다
질문 제목 : 부족한점 지적 부탁드립니다.
코드가 지저분하거나 저희 나쁜 습관 같은게 있다면
지적 부탁드립니다.. 어느하나 가볍게 넘기지 않고 읽고 고치도록 하겠습니다
많은 지적 부탁드립니다질문 내용 :
주민등록번호 앞 12자리를 입력받아서 마지막 자리의 값을 알아내는 프로그램입니다.
주민등록번호 생성기도 같은 원리로 만들어 진걸로 알고있습니다.
악용은 하지맙시다.#include stdio.h
int fct(int ary[], int k);
int main(void)
{
int p[13];
int n;
printf(주민등록번호 앞 12자리를 입력하세요. : \n);
for(n=0; n12; n++)
{
printf(입력 :);
scanf(%d,&p[n]);
}
printf(마지막 자리는 : %d \n,fct(p, sizeof(p)/sizeof(int)));
}
/***** 마지막 자리를 계산하는 함수 fct 입니다 . *****/
int fct(int ary[], int k)
{
int a;
int result=0;
/******************************/
/* 번호 곱연산 */
/******************************/
for(a=0; ak; a++)
{
if(a8)
ary[a]*=(a+2);
else if(a13)
ary[a]*=(a-6);
else
break;
}
/*******************************/
/* 배열 합& 11로 나눈 나머지 */
/*******************************/
for(a=0;ak;a++)
{
result+=ary[a];
}
result=11-result%11;
if(result=10)
return (result-10);
else
return result;
}
-
그댸와나
수다님 지적 감사합니다. 그렇다면 변수를 여러개 써도 메모리를 자동으로 줄여준다는 말인가요 ?
그렇다면 다음부터는 읽기 좋은쪽으로 코드를 짜보도록 노력해보도록 하겠습니다 -
신당
문자열로 입력을 받는다는게 어떤뜻인지 가르쳐 주실수 있으시면 부탁드리겠습니다
-
꽃짱아
저도 그점이 상당히 마음에 걸렸습니다 수다님 어떻게 수정할 방법이 없을까요 ?
-
모람
그래요 문자열로 입력을 받아야죠..
-
새우깡
처음 입력을 받는 부분이 오해의 소지가 많네요.
느낌상으로는 12자리를 한꺼번에 입력하고 엔터를 칠 가능성이 아주 높습니다. -
진달래
사이즈옵이 이런대 사용되나여;;
-
캐릭터
웬만한 현대 옵티마이저들은 중복되는 항이나 통합될 수 있는 항이 존재하면 최적화합니다.
-
하림
제가 처음에 fct 함수에서 변수를 두개 선언해서 할려다가 메모리 사용을 줄이기위해
a 하나로 변수 할당값과 증감값 그리고 아래 증감값까지 사용했는데 이렇게 한게
잘한건지 알수가 없네요.. 메모리를 줄이긴 했다만 코드가 조금 복잡해 진것도 있고 ..
좋은코드는 읽기 좋아야 된다고 배워서요 .. 어느게 좋은지 지적좀 부탁드리겠습니다
그외 다른 나쁜 습관도 많은 지적 부탁드립니다 감사합니다! -
해뜰참
수다님 지적 감사합니다 ^^ 다음번엔 그점 고쳐서 오겠습니다
-
슬예
a, ary라는 변수이름대신 의미있는 걸 붙이시면 좀 더 좋을듯...
잘하셨어네요...