#include<iostream>
#include <math.h>
using namespace std;
int main()
{
int num, i; // 일련의데이터를저장
double temp[3]={0}; // 더한값들을저장
double a_avg=0, g_avg=0, h_avg=0; // 산술, 기하, 조화평균
cout << "원하는정수를입력하시오.(0보다작은수입력시종료) : "
cin >> num;cout<<endl;
if(num<=0)
return 0; // 0보다작을시종료
for(i=1; i<=num; i++)
{
temp[0] += i;
temp[1] += i*i;
temp[2] += 1/i;
}
a_avg = temp[0] / num; // 산술평균
g_avg = sqrt(temp[1]); // 기하평균
h_avg = num / temp[2]; // 조화평균
cout.setf(ios_base::fixed);
cout.precision(2);
cout << "산술평균: " << a_avg << endl;
cout << "기하평균: " << g_avg << endl;
cout << "조화평균: " << h_avg << endl;
cout << endl;
return 0;
#include<iostream>
using namespace std;
int main()
{
int i, num;
cout<<"양의정수를입력하시오. : "
cin>>num; cout<<endl;
if(num <= 0)
{
cout<<"양의정수를입력하셔야합니다."
return 0;
}
for(i=3; i<=num; i+=3 )
{
if(i % 3 == 0)
cout<<i<<" "<<endl;
}
3. 2와 100사이에 있는 모든 소수(Prime number)를 찾는 프로그램을 작성하라. 소수는 1과 자기 자신외에는 약수를 가지지 않는다.
using namespace std;
int main()
{
int i, j;
for(i=2; i<=100; i++)// 2 ~ 100 까지검색
{
for(j=2; j<=i; j++) // 2 ~ i값까지검색
{
if(i%j==0)
break
}
if(i==j) // i값을j로나눠서나머지가이면서
{ // 그값이i == j 일때소수이다.
cout << j << " "
}
}
cout<<endl;
return 0;
3. 기억력 테스트 게임을 작성하여 보자. 짧은 시간 안에 화면에 몇 개의 정수를 표시한다. 일정한 시간이 지나면 정수는 화면에서 사라진다. 게임 참가자는 이 정수들을 기억하고 있어야 한다. 게임 참가자는 정수가 화면에서 사라지면 원래의 순서대로 정수를 입력한다. 정수를 맞추면 다시 새로운 게임을 시작한다. 이 프로그램을 작성할 때 가장 어려운 점은 화면에 표시했던 정수를 지우는 것이다. 이것은 캐리지 리턴을 표시하는 \r문자를 출력하고 스페이스 문자를 연속으로 출력하면 가능하다. 또한 임의의 정수는 rand() 함수를 호출하면 얻을 수 있다.
#include<iostream>
#include<time.h>
#include<stdlib.h>
#include<windows.h>
using namespace std;
#define TIME 500 // 출력하는시간정의
int main()
{
srand((unsigned)time(NULL)); // 현시각을기준으로난수생성
char restart;
int out1, out2, out3; // 출력변수
int in1, in2, in3; // 입력변수
while(1)
{
out1 = rand() %10 + 1; // 난수생성
out2 = rand() %10 + 1;
out3 = rand() %10 + 1;
cout << "기억력테스트게임입니다." << endl;
cout << "화면에보이는숫자들을기억하였다가다시쓰면됩니다." << endl;
cout << out1 << " " << out2 << " " << out3 ;
Sleep(TIME); // 시간지연함수
cout << "\r \r" // 포인트를다시원점으로되돌린다.
cout << "입력하시오: "
cin>>in1 >>in2 >>in3;
if( out1 == in1 && out2 == in2 && out3 == in3 )
cout << "맞았습니다." << endl;
else
cout << "틀렸습니다." << endl;
cout << "다시하시겠습니까?(y/n) : " cin >> restart;cout << endl;
if(restart=='N' || restart=='n')
return 0;
else if(restart!='Y' && restart!='y')
continue
}
return 0;
5! = 5 * 4 * 3 * 2 * 1
5-1)for문을 이용하여 팩토리얼값을 출력하는 프로그램을 작성하라. 20!을 넘어가면 어떤 어려움이 있는가?
5-2)while문을 이용하여 팩토리얼값을 출력하는 프로그램을 작성하라. 20!을 넘어가면 어떤 어려움이 있는가?
#include<iostream>
using namespace std;
int main()
{
int num, b=1,i=1;
int check=0;
cout<<"n! 구하는프로그램입니다. for문(1) while문(2)"<<endl;
cout<<"원하는반복문을선택하시오. : "
cin>>check; cout<<endl;
cout << "정수를입력하시오. : "
cin >> num; cout<<endl;
switch(check)
{
case 1:
cout << "-------- -------------------------" << endl;
cout << " n n! " << endl;
cout << "-------- -------------------------" << endl;
for(i=1; i<=num; i++)
{
cout << i <<" "
b *= i;
cout << b << endl;
if(num*b/b != num) // 강의시간에배운내용
{
cout <<i << " 오버플로우발생"<< endl;
break
}
}
cout << "-------- -------------------------" << endl;
break // case 1 종료
case 2 :
cout << "-------- -------------------------" << endl;
cout << " n n! " << endl;
cout << "-------- -------------------------" << endl;
while(i<=num)
{
cout << i <<" "
b *= i;
cout << b << endl;
i++;
if(num*b/b != num)
{
cout <<i << " 오버플로우발생"<< endl;
break
}
}
cout << "-------- -------------------------" << endl;
break // case 2 종료
default:
cout<<"1과2중선택하시오."<<endl;
break
}
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int n, r, i,temp=0;
int p=1;// 순열(Permuntation)
cout<<"순열을구하는프로그램. N개중R개를나열하는프로그램입니다."<<endl;
cout<<"N 과R을입력하시오. : "
cin>> n >>r;
temp = n;
for(i=0; i< r; i++)
{
p *= temp;
temp--;
}
cout<<n <<" P "<<r <<"은"<<p <<"입니다."<<endl;
return 0;
7. 피보나치 수열은 다음과 같이 정의되는 수열이다.
피보나치 수열에서는 앞의 2개의 원소를 합하여 뒤의 원소를 만든다. 피보나치 수열에서 처음 멏 개의 원소를 나열하면 다음과 같다.
0,1,1,2,3,5,8,13,21,34,55......
피보나치 수열을 생성하는 프로그램을 작성하여라.
#include<iostream>
using namespace std;
int main()
{
int i, num;
int f0=0, f1=1, f2;
cout << "출력하고자하는피보나치수열의수(3이상정수) : "
cin >> num;
cout<<f0<<" " <<f1 <<" "
for(i=0; i < (num-2); i++)
{
f2=f0+f1;
cout << f2 << " "
f0=f1;
f1=f2;
}
cout<<endl;
}