모든 예시들은 실전C프로그래밍(21세기사, 나중채_김도년_김영갑_박천수_박태순_양효식_임필옥_장문정_장 윤_한동일 공저)에 수록되어 있는 것들입니다.
[문제 1]
하나의 양의 정수 N을 입력 받아 N의 약수를 출력하는 프로그램을 작성하시오.
int main()
{
int N,tmp=2;
scanf("%d",&N);
printf("1");
while(tmp!=N+1){
if (N%tmp==0){
printf(" %d",tmp);
}
tmp++;
}
return 0;
}
[문제 2]
하나의 정수 N을 반복해서 입력 받아 N의 합을 출력하는 프로그램을 작성하시오.
int main()
{
int N=1,tmp=0;
while(N!=0){
scanf("%d",&N);
tmp+=N;
}
printf("%d",tmp);
return 0;
}
[문제 3] 하나의 기준 정수를 입력 받고, 다음 예시와 같이 정답을 맞힐 때 까지 정수를 입력 받아 대소 관계를 출력하는 숫자 맞추기 게임 프로그램을 작성하시오.
int main()
{
int N=1,M,tmp=0;
scanf("%d",&N);
do{
scanf("%d",&M);
if(M>N)printf("\n%d>?",M);
else if(M<N)printf("\n%d<?",M);
else printf("\n%d==?",M);
tmp++;
}while(N!=M);
printf("\n%d",tmp);
return 0;
}
[문제 4]
두 개의 양의 정수 N과 M을 입력 받아 두 정수의 최대공약수를 출력하는 프로그램
int main()
{
int N,M,i,tmp,max;
scanf("%d %d",&N,&M);
if(N>=M)max=N;
else max=M;
for(i=max;i!=0;i--){
if(M%i==0&&N%i==0) {
printf("%d",i);
break;
}
}
return 0;
}
while문도 비슷한 맥락으로 작성하면 된다..
[문제 5]
양의 정수 N을 입력 받아, 높이가 N인 삼각형을 출력하는 프로그램
int main()
{
int N,i,j,k,ind,tmp;
scanf("%d",&N);
for(i=1;i<=N;i++){
for(j=0;j<N-i;j++){
printf(" ");
}
for(k=0;k<2*i-1;k++){
printf("*");
}
for(tmp=N+i;tmp<=2*N-1;tmp++){
printf(" ");
}
printf("\n");
}
return 0;
}
[문제 6] 양의 정수 N을 입력받아, 아래 예시와 같이 높이 N인 삼각형을 출력하는 프로그램을 for 문을 중첩 이용하여 작성하시오.
int main()
{
int N,i,j,k,ind,tmp;
scanf("%d",&N);
i=0;
while(i<N){
for(j=i+1;j<=N+i;j++)printf(" %d",j%10);
printf("\n");
i++;
}
return 0;
}
[문제7] 하나의 양의 정수 N을 받아 아래와 같이 출력하느 프로그램을 작성하시오.
int main(){
int N,i,j,k;
scanf("%d",&N);
for(i=1,k=1;i<N+1;i++){
for(j=1;j<=i;j++,k++){
printf(" %d",k%10);
}
printf("\n");
}
return 0;
}
[문제 8] 정수 M, N을 입력받는다. for문을 사용하여 M!(팩토리얼) 부터 N!(팩토리얼)까지 출력하는 프로그램을 작성하시오.
int main(){
int N,M,i,j,tmp=1;
scanf("%d %d",&N,&M);
for(i=N;i<M+N-1;i++){
printf("%d!=1",i);
for(j=2;j<=i;j++){
printf("*%d",j);
}
tmp=tmp*(j-1);
printf("=%d\n",tmp);
}
return 0;
}
[문제 9]
하나의 양의 정수 N을 입력 받아, 1부터 N까지의 정수에서 숫자 3이 총 몇번 나타나는지를 출력하는 프로그램
int main()
{
int N,i=0,j,tmp,num=0,ans=0;
scanf("%d",&N);
while(i<=N){
for(j=i;j!=0;j=j/10){
if(j%10==3) ans++;
}
i++;
}
printf("%d",ans);
return 0;
}
[문제 10]
10이상의 양의 정수 N을 입력 받아 디지털 근을 출력하는 프로그램
int main() {
int N, a=1, b=0;
scanf("%d", &N);
while (a<=10*N)
{
if (b <= 9)
{
b = b + (N / a) % 10;
}
while (b >= 10)
{
b = b % 10 + b / 10;
}
a = a * 10;
}
printf("%d", b);
return 0;
}
[문제 11] 3~18 사이의 정수 N을 입력 받아, 3개의 주사위의 총 합이 N이 되는 모든 경우를 출력하는 프로그램을 작성하시오.
int main() {
int N,i,j,k;
scanf("%d",&N);
int sum=N;
for(i=1;i<7;i++){
for(j=1;j<7;j++){
for(k=1;k<7;k++){
if(sum==i+j+k) {
printf("%d %d %d\n",i,j,k);
break;
}
}
}
}
return 0;
}
[문제 12] 하나의 양의 정수 N을 입력 받아 1부터 N까지의 합을 출력하는 프로그램을 작성하시오.
int main() {
int N, i, j, k,sum=0;
scanf("%d", &N);
for(i=1;;i++){
if(i==N+1) break;
sum+=i;
}
printf("%d",sum);
return 0;
}
[문제 13] 0~100사이의 정수N을 반복해서(종료 조건 시까지) 입력받아 N의 합계, 평균, 개수를 출력하는 프로그램을 작성하시오.
int main() {
int N, i, j, k,sum=0;
float mean=0;
int num=0;
scanf("%d", &N);
sum+=N;
mean+=(float)N;
num++;
while(1){
scanf("%d",&N);
if(N>100) continue;
else if (N<=0) break;
else {
sum+=N;
mean+=(float)N;
num++;
}
}
mean/=num;
printf("%d %.2f %d",sum,mean,num);
return 0;
}
'프로그래밍 공부 > C' 카테고리의 다른 글
[C언어] 버블 정렬(가장 작은 수부터 큰 수까지 오름차순으로 정렬) (0) | 2020.11.04 |
---|---|
2020.01.06 7장 배열 (0) | 2020.11.04 |
2020.01.05 5장 조건문 (0) | 2020.11.04 |
2020.01.05 4장 수식과 연산자 (0) | 2020.11.03 |
2020.01.05 3장 입출력 (0) | 2020.11.03 |