[복습]260929 - 조건문
댓글 0
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
댓글을 작성하려면 로그인이 필요합니다.
아직 댓글이 없습니다. 첫 번째 댓글을 작성해보세요.
철수·영희·민수의 점수를 순서대로 한 줄씩 입력받음. 최고 점수가 60 이상이면 최고 점수를 받은 사람 모두를 선발함. 선발된 이름과 점수를 철수·영희·민수 순서로 출력하고 마지막에 선발 인원을 출력함. 아무도 선발되지 않으면 선발자 없음과 선발 인원 0을 출력함. 점수는 0~100의 정수임.
입력 예시
85
72
85
철수: 85
민수: 85
선발 인원: 2
using System;
//철수·영희·민수의 점수를 순서대로 한 줄씩 입력받음.
int chul = int.Parse(Console.ReadLine());
int young = int.Parse(Console.ReadLine());
int min = int.Parse(Console.ReadLine());
int pick = 0;
int best = chul; //일단 철수한테 최고를 넣어봄
if (young > best) // 최고랑 영희랑 비교하고 영희가 더 높으면
{
best = young; // 영희한테 벨트 넘김
}
if (min > best) // 최고랑 민수랑 비교하고민수가 지금 벨트 주인보다 높으면
{
best = min; // 민수한테 벨트 넘김
}
//이러면 어찌됬든 best에는 최고값이 들어가게됨
//최고값을 구했으니 최고값이랑 같은애들을 비교하자
//60 이상이라는 최소기준 보면서
if (best >= 60)
{
if(chul == best)
{
Console.WriteLine($"철수: {best}");
pick++;
}
if(young == best)
{
Console.WriteLine($"영희: {best}");
pick++;
}
if(min == best)
{
Console.WriteLine($"민수: {best}");
pick++;
}
}
else
{
Console.WriteLine($"선발자 없음");
}
//일단 점수를 입력받고 여기서 같은애들만 뽑아야하는데
//서로서로 같은걸 어떻게 계산하냐고
//
Console.WriteLine($"선발 인원: {pick}");
명령줄 설정과 파일 설정을 문자열 한 줄씩 입력받음. int로 변환할 수 있고 1~100인 설정만 유효함. 명령줄 설정이 유효하면 그것을 사용하고, 그렇지 않으면 유효한 파일 설정을 사용함. 둘 다 유효하지 않으면 기본값 20을 사용함. 선택한 출처와 최종 값을 출력함. 빈 줄·변환 실패·범위 오류는 모두 유효하지 않은 설정으로 취급함.
입력 예시
오류
35
출처: 파일
설정값: 35
using System;
string order = Console.ReadLine(); //명령줄
string setting = Console.ReadLine(); //파일설정
bool orderOk = int.TryParse(order, out int orderValue);
bool settingOk = int.TryParse(setting, out int settingValue);
//명령이 변환 성공했고 그게 허용 범위 내
if(orderOk && orderValue >= 1 && orderValue <= 100)
{
Console.WriteLine("출처: 명령줄");
Console.WriteLine($"설정값: {orderValue}");
}
//세팅이 변환 성공했고 허용 범위 내
else if(settingOk && settingValue >= 1 && settingValue <= 100)
{
Console.WriteLine("출처: 파일");
Console.WriteLine($"설정값: {settingValue}");
}
else
{
Console.WriteLine("출처: 기본값");
Console.WriteLine("설정값: 20");
}
문서는 1100페이지임. 출력할 시작·끝 페이지를 한 줄씩 입력받으며 두 끝을 모두 포함함. 시작이 끝보다 크면 잘못된 순서만 출력함. 순서가 맞지만 실제 문서와 겹치는 페이지가 없으면 출력할 페이지 없음만 출력함. 그 외에는 존재하는 페이지 구간만 출력 대상으로 삼아 실제 범위·출력 장수·요청에서 제외된 장수를 출력함. 두 입력은 -10001000의 정수임.
입력 예시
98
105
출력 범위: 98~100
출력 장수: 3
제외된 장수: 5
using System;
using System.Drawing;
int start = int.Parse(Console.ReadLine());
int end = int.Parse(Console.ReadLine());
// 두 끝을 모두 포함함. <= 뭔소리여
//두끝이 뭔데
//시작이 끝보다 크면 잘못된 순서만 출력함
//순서가 맞지만 실제 문서와 겹치는 페이지가 없으면
//출력할 페이지 없음만 출력함
//그 외에는 존재하는 페이지 구간만 출력 대상으로 삼아
//실제 범위·출력 장수·요청에서 제외된 장수를 출력
//제외된 장수 = 범위 벗어난만큼
//일단 아예 틀린경우
if(start > end)
{
Console.WriteLine("잘못된 순서");
}
//start가 0보다 작거나 100보다 크다면 (둘중에 하나라도 포함일시)
//이게 아닌데? 겹치는게 없다는건 start end 전부 범위 아웃이라는거아닌가
else if (end < 1 || start > 100) //끝이 1보다 작고 시작이 100보다 큰 안겹치는 문제상황
{
Console.WriteLine($"출력할 페이지 없음");
}
else
{
int realStart = start < 1 ? 1 : start;
int realEnd = end > 100 ? 100 : end;
int print = (realEnd - realStart) + 1;
int request = (end - start) + 1;
int ignore = request - print;
Console.WriteLine($"출력 범위: {realStart}~{realEnd}");
Console.WriteLine($"출력 장수: {print}");//-1 한 이유? 해당 장까지 포함해야하니까
Console.WriteLine($"제외된 장수: {ignore}");//그냥 end에서 100빼면 되는거 아님?
}
현재 주문 상태, 현재 잔액, 처리할 명령을 한 줄씩 입력받아 주문 하나를 처리함. 주문 금액은 3000원이며 현재 상태는 접수·결제·발송·취소 중 하나, 잔액은 0~100000의 정수임. 결제·발송 상태의 잔액은 이미 주문 금액을 지불한 뒤의 값임. 명령은 대소문자를 구분함.
거절된 명령은 상태와 잔액을 바꾸지 않음. 처리 메시지 다음에 최종 상태와 잔액을 출력함.
입력 예시
결제
2000
cancel
결제 취소 및 환불
상태: 취소
잔액: 5000
Develog는 단순히 글을 쓰는 공간이 아닙니다. 성장의 과정을 기록하고, 그 기록으로 나를 증명하며 원하는 기회를 얻는 곳이길 바랐습니다. 누군가의 꿈으로 향하는 중간다리가 되는 것, 그것이 Develog를 만든 이유입니다.

우리들의 게임 발매 이야기

안녕하세요. 플밍 4기 입니다. 게임 개발을 배우기 전 네트워크 엔지니어 도메인에서 익히고 배웠던 네트워크 이론에 대한 기초 입니다. 학습에 도움이 되길 바라며 공유 드립니다.
Develog는 단순히 글을 쓰는 공간이 아닙니다. 성장의 과정을 기록하고, 그 기록으로 나를 증명하며 원하는 기회를 얻는 곳이길 바랐습니다. 누군가의 꿈으로 향하는 중간다리가 되는 것, 그것이 Develog를 만든 이유입니다.



안녕하세요. 플밍 4기 입니다. 게임 개발을 배우기 전 네트워크 엔지니어 도메인에서 익히고 배웠던 네트워크 이론에 대한 기초 입니다. 학습에 도움이 되길 바라며 공유 드립니다.