<코드>

#include <stdio.h>

int main()
{
	int h, t;
	int count = 0;
	
	fscanf(stdin, "%d %d", &h, &t);
	
	for(int i=h; i<=t; i++)
	{
		if((!(i%4) && (i%100)) || !(i%400))
			count++;
	}
	
	fprintf(stdout, "%d", count);
	
	return 0;
}

<코드>

#include <stdio.h>

int main()
{
	int n;
	
	fscanf(stdin, "%d", &n);
	
	for(int i=1; i<=n; i++)
	{
		for(int j=1; j<=n-i; j++)
			fprintf(stdout, "  ");
		
		for(int j=1; j<=(i*2-1); j++)
			fprintf(stdout, "* ");
		
		fprintf(stdout, "\n");
	}
	
	for(int i=n-1; i>0; i--)
	{
		for(int j=1; j<=n-i; j++)
			fprintf(stdout, "  ");
		
		for(int j=1; j<=(i*2-1); j++)
			fprintf(stdout, "* ");
		
		fprintf(stdout, "\n");
	}
	
	return 0;
}

<코드>

#include <stdio.h>

int main()
{
	int arr[1000];
	int tmp, i=0;
	
	while(1)
	{
		fscanf(stdin, "%d", &tmp);
		
		if(!tmp)
			break;
		
		if(!(tmp%5)&&!(tmp%3)){
			arr[i++] = tmp;
		}
	}
	
	if(!i)
		printf("0");
	else
	{
		for(int j=0; j<i; j++)
			fprintf(stdout, "%d ", arr[j]);
		fprintf(stdout, "\n%d", i);
	}
	
	return 0;
}

<코드1>

#include <stdio.h>

int factorial(int x)
{
	if(x >= 1)
		return 1;
	
	return x*factorial(x-1);
}

int main()
{
	int x;
	
	fscanf(stdin, " %d", &x);
	
	fprintf(stdout, " %d", factorial(x));
	
	return 0;
}

 

<코드2>

#include <stdio.h>

int main()
{
	int x, result = 1;
	
	fscanf(stdin, "%d", &x);
	
	for(int i=1; i<=x; i++)
		result*=i;
	
	fprintf(stdout, "%d", result);
	
	return 0;
}

 

※ <코드1>처럼 함수로 짜면 채점이 안돼서 <코드2>와 같이 반복문으로 작성해서 제출해야 한다.

<코드>

#include <stdio.h>

int main()
{
	int x, y, result;
	char op;
	
	fscanf(stdin, "%d %d %c", &x, &y, &op);
	
	switch(op)
	{
		case '+':
			result = x+y;
			break;
		case '-':
			result = x-y;
			break;
		case '/':
			result = x/y;
			break;
		case '%':
			result = x%y;
			break;
		case '*':
			result = x*y;
			break;
	}
	
	fprintf(stdout, "%d %c %d = %d", x, op, y, result);
	
	return 0;
}

<코드>

#include <stdio.h>

int main()
{
	int x, y, z;
	
	fscanf(stdin, "%d %d %d", &x, &y, &z);
	
	fprintf(stdout, "%d %d...%d", x+y+z, (x+y+z)/3, (x+y+z)%3);
	
	return 0;
}

<코드>

#include <stdio.h>

int main()
{
	double x, y;
	
	fscanf(stdin, "%lf %lf", &x, &y);
	
	fprintf(stdout, "%.2f %.2f %.2f", x, y, x+y);
	
	return 0;
}

<코드>

#include <stdio.h>

int main()
{
	double len;
	
	while(1)
	{
		fscanf(stdin, "%lf", &len);
		if(len == 0)
			break;
		fprintf(stdout, "%.2f\n", (len/2.0)/3.14);
	}	
	
	return 0;
}

<코드>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
	int len, n;
	char *arrs[100];
	char buf[100], x[5];
	char *tmp;
	
	fgets(x, 5, stdin);
	n = atoi(x);
	
	for(int i=0; i<n; i++)
	{
		fgets(buf, 100, stdin);
		len = strlen(buf);
		tmp = (char *)malloc(sizeof(char)*(len+1));
		strcpy(tmp, buf);
		arrs[i] = tmp;
	}
	
	for(int i=n-1; i>=0; i--)
	{
		fprintf(stdout, "%s", arrs[i]);
	}
		
	
	return 0;
}

 

※ N을 fscanf로 받으니까 자꾸 뒤에 개행문자가 문자열 배열에 들어가서 N을 문자열로 바꿔서 fgets로 입력받았다.

<코드>

#include <stdio.h>
#include <string.h>

int main()
{
	char s1[100];
	char s2[100];
	
	fgets(s1, 100, stdin);
	fgets(s2, 100, stdin);
	
	fprintf(stdout, "%s", strlen(s1)<strlen(s2)?s1:s2);
	fprintf(stdout, "%s", strlen(s1)>strlen(s2)?s1:s2);
	
	return 0;
}

+ Recent posts