세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자.
정수형으로 a, b, c를 scanf를 써서 받아온다. if문 3개를 사용해서 %(나머지연산자)로 짝수판별을 진행해 짝수가 맞다면 출력한다.
코드가 맛있지 아니하다
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
if (a % 2 == 0)
{
printf("%d\n",a);
}
if (b % 2 == 0)
{
printf("%d\n",b);
}
if (c % 2 == 0)
{
printf("%d\n",c);
}
}
시작단과 마지막 단을 입력하면
그 구간의 구구단을 출력하는 프로그램을 작성하시오.
입력받을 두 정수형자료를 선언 후 scanf로 가져온 후 for문 안에 입력값을 이용해 몇단부터 몇단까지 출력할지를 하고 그 안에 출력하는 단의 구구단을 출력할 for문을 하나 더 넣어서 완성!한다.
#include <stdio.h>
int main()
{
int a, b;
scanf("%d",&a);
scanf("%d",&b);
for(int i = a;i<=b;i++){
for(int j=1;j<10;j++){
printf("%d*%d=%d\n",i,j,i*j);
}
}
return 0;
}
3 6 9 게임을 하던 영일이는 3 6 9 게임에서 잦은 실수로 계속해서 벌칙을 받게 되었다.
3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보자.
이 정말 마음에 들지않는 문제에는 10보다 작은 정수를 입력해야 한다는 조건이 있기에 별 생각없이 그냥 숫자 받아와서 입력한 숫자까지 반복하는 for문 받아온 다음에 if문으로 %로 3의 배수여부만 판단하기만 하면 정답처리를 해줘버리는 문제다.
이럴거면 그냥 369게임을 전제조건으로 두지 말던가
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
for(int i = 1; i <= a; i++){
if(i%3 == 0){
printf("X ");
}else{
printf("%d ",i);
}
}
return 0;
}
소수란, 약수가 1과 자기 자신 두 개 뿐인 수를 말한다.
어떤 수가 입력되면 그 수가 소수인지 판단하시오.
정수형 자료 입력을 받아온 후 for문에서 그 자료를 반복적으로 %연산자로 판단을해 짝수 여부를 판단하고 짝수면 결과출력 후 종료되고 모두 거짓이면 for문을 탈출해 홀수인 출력값에 도달한다.
코드가 맛있지 않다
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
for(int i = a - 1;i>1;i--){
if(a % i == 0){
printf("not prime");
return 0;
}
}
printf("prime");
return 0;
}
어떤 수 n을 입력받으면 다음과 같은 삼각형을 출력한다.
여기서 입력되는 n은 반드시 홀수이다.
n을 입력받고 for문에 몇줄 출력할지 형태에 맞게 생각하고 시행착오를 반복하며 때려넣어서 \n(줄바꿈)출력. 그다음 줄바꿈 전 for문 2개를 삽입해서 공백과 *을 출력한다(또 생각하고 넣어보고 이런식으로).
#include <stdio.h>
int main(){
int a;
scanf("%d",&a);
{
for (int i = 0; i < a-a/2; i++)
{
for (int j = 0; j <a/2-i; j++)
{
printf(" ");
}
for (int j = 0; j < 1 + 2 * i; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
}
한 단어를 입력받아 출력한다.
문자열 [9] 이 길이로 만들고 받아서 출력한다 문자열을 자체로 주소여서 scanf를 할때 &가 필요없다 %s로 입출력
#include <stdio.h>
int main(){
char a[9];
scanf("%s",a);
printf("%s",a);
return 0;
}
어떤 문자열이 있을 때 문자 t의 위치를 모두 찾아 출력하시오.
문자열을 문제에서 주어진[11]크기로 지정하고 입력받는다. for문에 string.h라이브러리의 문자열 길이를 알려주는 strlen함수를 사용해 반복횟수를 설정하고 i=0으로 해서 문자열의 자리를 하나씩 돌며 't'를 검사하고 만약 't'가 있다면 i+1을 출력하는 형식으로 하면 완성된다.
#include <stdio.h>
#include <string.h>
int main(){
char a[11];
scanf("%s",a);
for(int i=0;i<strlen(a);i++){
if(a[i]=='t'){
printf("%d ",i+1);
}
}
}

