이번에는 코딩과제만 주어졌다.
1. 달력 출력하기(2017년 기준)
2. 배열크기 N을 입력받아 N*N행렬을 만들고 오름차순으로 정렬하기
3. 위의 정렬을 역순으로 정렬하기
4. ㄹ 정렬하기
우선 내가 작성한 달력을 출력하는 코드는 아래와 같다
#include <stdio.h>
int i,j;
void func_make(int day1[][7], int start)
{
for(i=0;i<5;i++)
{
for(j=start;j<6;j++)
day1[i][j+1]=day1[i][j]+1;
if(i!=4)
day1[i+1][0]=day1[i][j]+1;
start=0;
}
}
int func_start(int m)
{
if(m==1||m==10) return 0;
else if(m==5) return 1;
else if(m==8) return 2;
else if(m==2||m==3||m==11) return 3;
else if(m==6) return 4;
else if(m==4||m==7) return 6;
else if(m==9||m==12) return 5;
}
int main()
{
int day[5][7];
int month,month1;
printf(" 월\r");
scanf("%d",&month);
printf("\n일\t월\t화\t수\t목\t금\t토\n");
month1 = month;
func_start(month1);
month1 = func_start(month1);
day[0][month1]=1;
func_make(day,month1);
for(i=0;i<5;i++)
{
for(j=0;j<7;j++)
{
if(month%2 == 1)
{
if(day[i][j] ==32)
{printf("\n");return 0;}
}
else if(month == 2)
{
if(day[i][j] ==29)
{printf("\n");return 0;}
}
else if(month%2 == 0)
if(day[i][j] ==31)
{
printf("\n");return 0;
}
if(j<month1)
{
printf("\t"); continue;
}
printf("%d\t",day[i][j]);
}
month1=0;
printf("\n");
}
return 0;
}
음.... 아주 별로다 ㅇㅅㅇ..;;;
--------------------------------
아주 별로여서 수정했다.
코드는 아래와 같다.
#include <stdio.h>
int i,j;
void func_make(int day1[][7], int month1)
{
int days[12] = {31,28,31,30,31,30,31,30,31,30,31,30};
int tmp=0;
for(i=0;i<month1-1;i++)
tmp+=days[i];
for(i=0;i<tmp%7;i++)
day1[0][i]=0;
day1[0][tmp%7-1]=0;
for(i=0;i<5;i++)
{
for(j=tmp%7;j<=6;j++)
{
if(day1[i][j-1] == days[month1-1] || day1[i][j-1]==-1)
day1[i][j]=-1;
else
day1[i][j]=day1[i][j-1]+1;
if(i !=4 && j==5)
day1[i+1][0]=day1[i][j]+1;
}
tmp=7;
}
}
int main()
{
int month,day[5][7];
printf(" 월\r");
scanf("%d",&month);
printf("\n일\t월\t화\t수\t목\t금\t토\n");
func_make(day,month);
for(i=0;i<5;i++)
{
for(j=0;j<7;j++)
{
if(day[i][j]==0||day[i][j]==-1)
printf("\t");
else
printf("%d\t",day[i][j]);
}
printf("\n");
}
return 0;
}
아직도 많이 부족하지만 여러모로 좋아진것 같다
'Programing > C' 카테고리의 다른 글
C :: 2차원배열 ㄹ정렬하기 (0) | 2017.04.04 |
---|---|
C :: 2차원배열에서의 오름차순과 그 역순 (0) | 2017.04.04 |
C :: 오름차순과 내림차순 (0) | 2017.03.29 |
C :: c언어 대소문자 변환 (2) | 2017.03.29 |
C :: call by value/reference (0) | 2017.03.29 |