switch-case문을 이용한 무한반복
렁찬
질문 제목 : 무한반복하다가 특정한 수를 입력하면 종료되게 하려면 어떻해 하나여?질문 요약 :아래 코딩한 것은 일차원 정수 배열에 데이터를 입력받고 함수 pcount(), avg(), large(), samll()을 이용해
양의 값의 개수, 평균, 최대값, 최소값을 구하는 프로그램 입니다.
이 프로그램에서 수정하여 switch문을 이용해서 아래와 같이 나오게 하고 1~5번 중 입력한 수만 출력하도록 하는 코딩좀 알려주세요.
(5번을 누르지 않으면 계속 반복되고 5번을 눌러야 프로그램이 종료됩니다.)
구하려는 값의 번호를 입력(5번을 입력해야 종료)
1. 양의정수
2. 평균
3. 최대값
4. 최소값
5. 종료질문 내용 :
#include stdio.h
#define dnum 100
int pcount(int a[], int n);
double avg(int a[], int n);
int large(int a[], int n);
int small(int a[], int n);
void main()
{
int data[dnum], k, n;
printf(처리할 데이터의 수 : );
scanf(%d, &n);
printf(%d개의 정수를 입력하세요., n);
for(k = 0 ; k n ; k++)
scanf(%d, &data[k]);
printf(양의 갯수는 %d\n, pcount(data,n));
printf(평균은 %.2f\n, avg(data,n));
printf(최대값 %d\n, large(data,n));
printf(최소값 %d\n, small(data,n));
}
int pcount(int a[], int n)
{
int j, result = 0;
for(j=0;jn;j++)
if(a[j] 0)result++;
return result;
}
double avg(int a[], int n)
{
int j, sum = 0, result;
for(j=0;jn;j++)
if(a[j] 0)sum += a[j];
result = sum / n;
return result;
}
int large(int a[], int n)
{
int j, max = 0;
for(j=0;jn;j++)
if(a[j] max)max = a[j];
return max;
}
int small(int a[], int n)
{
int j, min = a[0];
for(j=0;jn;j++)
if(a[j] min)min = a[j];
return min;
}
-
핫자두
switch( 어떤수 입력받아서 ){
case 1: 양의정수 계산.. break;
case 2: 평균계산.. break;
..
case 5: 종료.. break;
}