3번째 예시 질문
193
작성한 질문수 33
3번째 예시를 시작지점 알파벳과 첫행기준 얼만큼 출력할지를 입력으로 받아서 출력하는 걸로 변형을 해봤는데요
교수님이 코딩한거랑 다르게
변수를 추가를하여 작성하였는데요.
그로인해 코드의 길이가 더 늘어난 감이 없지않은데
혹시 이런방식이 속도면에서 문제가 되는지 궁금합니다.
int main()
{
char alphabet = 0;
int number = 0, originNumber = 0;
char originAlphabet;
printf("%s\n", "Input Alphabet what you want to start through and how many to print");
scanf("%c %d", &alphabet, &number);
originAlphabet = alphabet;
originNumber = number;
printf("%s\n\n", "Result is being printed......");
for (int i = 0; i < originNumber; i++)
{
alphabet = originAlphabet++;
for (int j = 0; j < number; j++)
{
printf("%c ", alphabet);
alphabet++;
}
number--;
printf("\n");
}
printf("%s\n", "Printing completed.....");
}
답변 1
1
프로그램의 유의미한 속도 차이가 있는지 보려면 입력 크기와 반복문의 수행 횟수를 따져보면 되는데 (알고리즘 면에서 이런 방식으로 성능 체크를 합니다.), 강의의 코드와 질문자님의 코드는 for문의 수행 횟수가 동일합니다. 꽤 크기가 큰 배열의 원소들을 복사해 오는 그런게 아닌 이상 한 두 개의 변수 대입 정도는 속도에 영향이 없다시피 합니다. 결론은 속도 차이 거의 없다고 볼 수 있습니다. 첫번째 for문이 도는 횟수인 originNumber 가 어마어마하게 큰 숫자라면 alphabet = originAlphabet++ 대입도 그만큼 이루어진다는 것이니 이땐 좀 속도 차이가 조금은 있을지도 모르겠네요.
이렇게 속도가 어떨지 대충 가늠해 보시려면 코드 길이보단 "수행 횟수", "입력 크기"를 따져보시면 됩니다.
Export template 안됨
1
64
2
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
88
3
main 함수에서 왜 int만 선언이 되는걸까요
1
80
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
75
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
78
1
프로토타입과 함수간의 인자 불일치
1
87
2
12.12 헤더 관련 질문
1
74
2
Visual Studio Community 2026 사용 문의
1
170
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
72
2
getchar(), putchar()
1
111
3
강의자리ㅛ
1
93
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
127
2
소스파일안에 여러 파일
1
87
2
F5와 F7의 차이
1
90
2
c = TWO * (a+b); 에서 a와 b는?
1
67
2
; 세미콜론을 붙이는 기준에 문의
1
78
1
Step over 기능 문의
1
64
2
2.6 강의 따옴표 출력 규칙 문의
1
87
2
int main 함수 관련 오류 문의
1
76
2
13.4 words[0]
0
73
2
11.7 함수를 구현해 봤습니다.
1
67
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
71
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
60
2
11.6 fit_str함수를 구현해 봤습니다.
1
59
2





