
1.학생의 최종점수 계산하기
1) 이름을 입력합니다.
2) 중간, 기말 시험 점수를 공백으로 분리하여 입력합니다.(실수형으로 입력가능합니다.)
3) 과제 점수를 입력하고 마지막에 EOF를 입력합니다.(과제의 개수는 몇 개든 상관 없습니다.)
4) 과제 점수의 평균을 구합니다.
5) 중간시험(20%), 기말시험(40%), 과제(40%)의 가중치를 가집니다.
6) 데이터는 소수점 3자리까지의 정확성을 가집니다.
#include <iomanip> // 입출력 라이브러리에서 전송된 문자수나 버퍼크기를 나타내기 위해 사용 #include <ios> #include <iostream> #include <string> using namespace std; int main() { // 학생의 이름을 묻고 입력받음 cout << "이름을 입력하세요: "; string name; cin >> name; cout << "Hello, " << name << "!" << endl; // 중간시험과 기말시험의 점수를 묻고 입력받음 cout << "중간, 기말 시험 점수 입력(예 69.0 79.0): "; double midterm, final; cin >> midterm >> final; // 과제 점수를 물음 cout << "과제 점수 입력, ""마지막에 EOF(end-of-file)입력 : "; // 지금까지 입력된 과제 점수의 개수와 합 int count = 0; double sum = 0; // 입력을 위한 변수 double x; // 불변성: 지금까지 count개 점수를 입력 받았으며 입력받은 점수의 합은 sum while (cin >> x) { ++count; sum += x; } // 결과 출력 double result = 0.2 * midterm + 0.4 * final + 0.4 * sum / count; streamsize prec = cout.precision(); cout << "당신의 최종 점수는 \n" << setprecision(3) << result << endl // 총 세자리 정밀도 << fixed << setprecision(3) << result << endl //소수점 아래 3자리 << fixed << setprecision(prec) << result << endl //C++ 기본 6자리 << setprecision(prec) << endl; // 후속 출력 정밀도를 초기화 return 0; }
2 . endl 과 '\n' 그리고 문장에 포함된 '\n'의 실행속도 측정
#include <chrono> #include <iostream> #include <string> using namespace std; int main(int argc, const char* argv[]) { chrono::system_clock::time_point start = chrono::system_clock::now(); //cout << "hello" << endl; // 316us //cout << "hello" << '\n'; // 373us cout << "hello\n"; // 140us chrono::duration<double> sec = chrono::system_clock::now() - start; chrono::microseconds mic = chrono::duration_cast<chrono::microseconds>(sec); //cout << sec.count() << endl; cout << mic.count() << "us" << endl; return 0; }
- 프로그램 실행 속도 측정
#include <chrono> #include <iostream> #include <string> using namespace std; int main(int argc, const char* argv[]) { int n; chrono::system_clock::time_point start = chrono::system_clock::now(); for(int i = 0; i < 100000000; i++){ n++; } chrono::duration<double> sec = chrono::system_clock::now() - start; chrono::microseconds mic = chrono::duration_cast<chrono::microseconds>(sec); cout << sec.count() << "s" <<endl; cout << mic.count() << "us" << endl; return 0; }
출처 : https://yhc509.tistory.com/m/entry/C-11-chrono-%EC%8B%9C%EA%B0%84-%EC%B8%A1%EC%A0%95?category=938448
C++ 11 - chrono 시간 측정
#include int main(int argc, const char * argv[]) { int n; chrono::system_clock::time_point start = chrono::system_clock::now(); for(int i = 0; i < 100000000; i++){ n++; } chrono::duration s..
yhc509.tistory.com
3.0 간단하게 vector 알아보기
https://jhnyang.tistory.com/230
[자료구조STL vector 1탄]벡터란? 배열 vs 벡터 비교/장단점/ 특징, 다양한 백터 선언 및 초기화 방법,
안녕하세요 오늘은 C++ 자료구조 컨테이너 중 하나인 vector 라이브러리에 대해 살펴봅시다. [1탄 목차] 1. 벡터란 무엇인가? 2. 벡터의 구조와 특징 (장단점) 3. 언제 벡터를 사용하는가 4. 벡터를 사�
jhnyang.tistory.com

3. 학생의 최종점수 계산하기
1) 이름을 입력합니다.
2) 중간, 기말 시험 점수를 공백으로 분리하여 입력합니다.(실수형으로 입력가능합니다.)
3) 과제 점수를 입력하고 마지막에 EOF를 입력합니다.(과제의 개수는 몇 개든 상관 없습니다.)
4) 과제 점수의 가운데값(median)값을 구합니다.
5) 중간시험(20%), 기말시험(40%), 과제(40%)의 가중치를 가집니다.
6) 데이터는 소수점 3자리까지의 정확성을 가집니다.
#include <algorithm> #include <iomanip> #include <ios> #include <iostream> #include <string> #include <vector> using namespace std; int main() { // 학생의 이름을 묻고 입력받음 cout << "이름을 입력하세요: "; string name; cin >> name; cout << "Hello, " << name << "!" << endl; // 중간시험과 기말시험의 점수를 묻고 입력받음 cout << "중간, 기말 시험 점수 입력(예 69.0 79.0): "; double midterm, final; cin >> midterm >> final; // 과제 점수를 물음 cout << "과제 점수 입력, ""마지막에 EOF(end-of-file)입력 : "; vector<double> homework; double x; // 불변성: homework는 지금까지 입력받은 과제 점수가 있음 while (cin >> x) homework.push_back(x); // 과제 점수의 유무 확인 typedef vector<double>::size_type vec_sz; vec_sz size = homework.size(); if (size == 0) { cout << endl << "입력한 과제 점수가 없습니다. 종료합니다." << endl; return 1; } // 점수를 정렬 sort(homework.begin(), homework.end()); // 과제 점수의 가운데값(median) 구함 vec_sz mid = size / 2; double median; median = size % 2 == 0 ? (homework[mid] + homework[mid - 1]) / 2 : homework[mid]; // 결과 출력 double result = 0.2 * midterm + 0.4 * final + 0.4 * median; streamsize prec = cout.precision(); cout << "당신의 최종 점수는 \n" << setprecision(3) << result << '\n' // 총 세자리 정밀도 << fixed << setprecision(3) << result << '\n' //소수점 아래 3자리 << fixed << setprecision(prec) << result << '\n' //C++ 기본 6자리 << setprecision(prec) << '\n'; // 후속 출력 정밀도를 초기화 return 0; }
'PROGRAM > C++' 카테고리의 다른 글
CH5. 문자열 분할 (0) | 2020.08.20 |
---|---|
4. 프로그램 및 데이터 구조화 -2 (0) | 2020.08.18 |
CH04. 프로그램 및 데이터 구조화 (0) | 2020.08.17 |
Hello Johns! 출력하기 (0) | 2020.08.16 |
입력한숫자만큼 별 출력하기(4자리수 한정) (0) | 2020.08.12 |