c언어 질문, 출력이 되지 않습니다

leehye의 이미지

소스 코드
#define _CRT_SECURE_NO_WARNINGS

#include

void print_menu(void);
//메뉴를 화면에 출력하는 함수.

int select_menu(void);
//키보드로부터 메뉴의 번호를 입력받아서 반환하는 함수.

int calc_total(int score[5]);
//정수가 저장된 배열을 매개변수로 전달받고 총점을 구해서 반환하는 함수.

double calc_average(int total, int cnt);
//총점(total)과 갯수(cnt)를 매개변수로 전달받고 평균을 구해서 반환하는 함수.

double print_star(double avg, double s);
//평균(avg)을 매개변수로 전달받고 별표(*)의 갯수를 계산해서 별표를 화면에 출력하는 함수.

int a;
//메뉴 번호를 입력받는 변수
int score[5];
// 5개의 숫자를 입력 받는 변수
int total = 0;
//총점을 저장하는 변수
double avg;
//평균을 저장하는 변수
int cnt = 5;
//갯수를 저장하는 변수
double s = 0;
//별표의 갯수를 저장하는 변수
int j = 0;
//별표가 출력된 갯수를 나타내는 변수

int main(void)
{
print_menu();

return 0;
}

void print_menu(void)
{
printf("----- 메뉴 -----\n1. 입력\n2. 총점\n3. 평균\n4. 그래프\n5. 종료\n\n");
printf("메뉴를 입력하시오 : ");

scanf("%d", &a);
printf("\n");
select_menu();

}

int select_menu(void)
{
if (a == 1)
{
printf("5개의 숫자를 입력하시오 : ");
for (int i = 0; i < 5; i++)
scanf("%d", &score[i]);
printf("\n");
}

else if (a == 2)
{
total = calc_total(score);
printf("총합 : %d\n", total);
printf("\n");
}

else if (a == 3)
{
avg = calc_average(total, cnt);
printf("평균 : %.1lf\n", avg);
printf("\n");
}

else if (a == 4)
{

double print_star(double avg, double s);
s = print_star(avg, s);
printf("%.0lf:", &s);
int j=0;
for (j = 0; j < s; j++)
printf("*");
printf("\n");
}

else if (a == 5)
return a;

print_menu();
return a;
}

int calc_total(int score[5])
{
int total = 0;

for (int i = 0; i < 5; i++)
total = total + score[i];

return total;
}

double calc_average(int total, int cnt)
{
double avg = (double) total / cnt;

return avg;
}
double print_star(double avg, double s)
{
double calc_average(int total, int cnt);
if (0 <= avg < 10)
s = 1;
else if (10 <= avg < 20)
s = 2;
else if (20 <= avg < 30)
s = 3;
else if (30 <= avg < 40)
s = 4;
else if (40 <= avg < 50)
s = 5;
else if (50 <= avg < 60)
s = 6;
else if (60 <= avg < 70)
s = 7;
else if (70 <= avg < 80)
s = 8;
else if (80 <= avg < 90)
s = 9;
else if (90 <= avg < 100)
s = 10;
else if (avg == 100)
s = 11;

return avg, s;
}

출력 결과
----- 메뉴 -----
1. 입력
2. 총점
3. 평균
4. 그래프
5. 종료

메뉴를 입력하시오 : 1

5개의 숫자를 입력하시오 : 90 80 70 100 77

----- 메뉴 -----
1. 입력
2. 총점
3. 평균
4. 그래프
5. 종료

----- 메뉴 -----
1. 입력
2. 총점
3. 평균
4. 그래프
5. 종료

메뉴를 입력하시오 : 1

5개의 숫자를 입력하시오 : 90 80 70 100 77

----- 메뉴 -----
1. 입력
2. 총점
3. 평균
4. 그래프
5. 종료

메뉴를 입력하시오 : 4

0:*
----- 메뉴 -----
1. 입력
2. 총점
3. 평균
4. 그래프
5. 종료

메뉴를 입력하시오 : 4

0:*
----- 메뉴 -----
1. 입력
2. 총점
3. 평균
4. 그래프
5. 종료

메뉴를 입력하시오 :

질문 사항
"메뉴를 입력하시오 : 4" 다음에서 "0:*"가 아닌 "9:*********"으로 출력하고 싶습니다.

.의 이미지

Total을 계산하지 않은 것 같습니다.
2번을 실행시키고 4번을 선택하시거나,
4번에 2번 내용을 포함 시키는 것이 필요할 것 같습니다.

leehye의 이미지

else if (a == 4)
{
total = calc_total(score);
printf("총합 : %d\n", total);
printf("\n");

double print_star(double avg, double s);
s = print_star(avg, s);
printf("%.0lf:", &s);
int j = 0;
for (j = 0; j < s; j++)
printf("*");
printf("\n");
}

.의 이미지

메뉴 선택 후 프로그램을 다시 수행 시키시는 건가요?
그럼 입력받은 점수를 잃게 될텐데요..

int main(void)
{
print_menu();
return 0;
}

chanik의 이미지

if (0 <= avg < 10) 식으로 돼있는 조건문들도 모두
if (0 <= avg && avg < 10) 식으로 두 개의 비교조건으로 쪼개셔야 합니다.

그리고, select_menu() 끝에서 또 print_menu()를 호출하는 꼬리물기를 하지 말고, main에서 loop를 만들어 select_menu()를 반복실행하도록 고치시는게 좋겠네요.

leehye의 이미지

정말 아쉽게도 수정하였지만 출력은 그대로네요.

chanik의 이미지

메뉴를 1, 2, 3, 4 순서로 차례로 실행해보시길.

지금의 코드에서는,
1은 입력만 받고 있고
2는 총합만 계산하며
3은 평균만 계산하고
4는 (총합계산후) 출력만 하고 있거든요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.