검색결과 리스트
2017/06에 해당되는 글 17건
- 2017.06.19 하고싶은거
- 2017.06.19 바이너리
- 2017.06.19 달력 깔끔한듯
- 2017.06.17 괄호 검사
- 2017.06.17 달력 1~12월 다 찍어내기
- 2017.06.15 바이너리 파일 핸들링
- 2017.06.14 달력 문제
글
글
바이너리
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *in,*out;
char name[100]={'0'};
int size;
char *data;
char file_name[100]={'0'};
int num=0;
char buf[100];
//입력
printf("Input file name : ");
gets(name);
printf("file size : ");
scanf("%d",&size);
//파일 읽기
in=fopen(name,"rb");
if(in==NULL)
{
printf("읽기 실패");
return 0;
}
//사이즈할당
data=(char*)malloc(sizeof(char)*size+1);
strncpy(file_name,name,5);
while(!feof(in))
{
sprintf_s(buf,sizeof(buf),"%s%d",file_name,num++);
out=fopen(buf,"wb");
if(!feof(in))
{
fread(data,size,1,in); //바이트 단위 읽기
fwrite(data,size,1,out); //바이트 단위 쓰기
}
}
fclose(in);
fclose(out);
return 0;
}
설정
트랙백
댓글
글
달력 깔끔한듯
#include<stdio.h>
int m_day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
char *week[7]={"일","월","화","수","목","금","토"};
int main()
{
int year,month,day;
int total;
int Ly;
int start[13]; //각달의 요일번호
int all_day[13][45]={0,};
int num1,num2,num3; //각각출력할떄 넘버
int num=1; //저장할때 넘버
int s=1;//출력달번호
year=2012;
month=12;
//이번년 윤달확인
if((year%4==0) && ( (year%400==0) || year%100!=0))
m_day[2]=29;
else
m_day[2]=28;
//윤달계산
Ly=year-1;
total=Ly+(Ly/4)-(Ly/100)+(Ly/400)+1;
start[1]=total%7;
for(int i=1;i<12;i++)
{
total=total+m_day[i];
start[i+1]=total%7;
}
//배열에 저장
for(int m=1;m<13;++m)
{
printf("%d월\n",m);
printf("일월화수목금토\n");
num=1; //날짜 변수 초기화
for(int i=1;i<=42;++i)
{
if(i<=start[m]) //공백
printf(" ");
else //날짜 일
{
all_day[m][i]=num++;
printf("%2d",all_day[m][i]);
}
if(i%7==0 && i!=1) //줄갱신
{
printf("\n");
}
//마지막일까지 찍히면 브뤠이크
if(num>m_day[m])
break;
}
printf("\n");
}
printf("%d년의 1월1일은 %s요일이다\n",year,week[start[1]]);
for(int i=0;i<4;i++)
{
printf("%d월\t\t\t%d월\t\t\t%d월\n",s,s+1,s+2);
printf("일월화수목금토\t\t일월화수목금토\t\t일월화수목금토\n");
num1=num2=num3=1;
for(int x=1;x<7;++x)
{
for(int j=1;j<8;++j)
{
if(all_day[s][num1]==0)
printf(" ");
else
printf("%2d",all_day[s][num1]);
num1++;
}
printf("\t\t");
for(int j=1;j<8;++j)
{
if(all_day[s+1][num2]==0)
printf(" ");
else
printf("%2d",all_day[s+1][num2]);
num2++;
}
printf("\t\t");
for(int j=1;j<8;++j)
{
if(all_day[s+2][num3]==0)
printf(" ");
else
printf("%2d",all_day[s+2][num3]);
num3++;
}
printf("\n");
}
s=s+3;
}
}
설정
트랙백
댓글
글
괄호 검사
조건 1: '(', ')' 이둘의 갯 수가 같아야 한다.
조건 2: 첫번째에 ')'이 오면 안되고 마지막에는 '(' 이 오며 안된다.
조건 3: 앞의 '(' 뒤에 ')'이 더 많이 있으면 안된다.
#include<stdio.h>
#include<string.h>
int main()
{
char in[100];
int a=0,b=0; //(,),각 갯수
int size;
printf("괄호 입력 : ");
scanf("%s",in);
size=strlen(in);
printf(" 크기 : %d\n",size);
//괄호수 체크
for(int i=0;i<size;i++)
{
if(in[i]=='(')
a++;
else if(in[i]==')')
b++;
else
printf("잘못된거 들어왔다");
}
if(a!=b)
{
printf("괄호 수가 안맞다 \n");
return 0;
}
//앞뒤 체크
if(in[0]!='(' || in[size-1]!=')')
{
printf("앞 뒤 괄호 잘못적음");
return 0;
}
//괄호 순서 검사
for(int i=0;i<size;i++)
{
if(in[i]=='(')
a--;
else
b--;
if(a>b)
{
printf("괄호 순서 에러");
return 0;
}
}
printf("Yes");
}
'☆C언어 > 소스' 카테고리의 다른 글
'q' 입력시 종료 (0) | 2017.11.21 |
---|---|
달력 (0) | 2017.11.13 |
바이너리 파일 핸들링 (0) | 2017.06.15 |
달력 문제 (0) | 2017.06.14 |
3n+1 (0) | 2013.06.27 |
설정
트랙백
댓글
글
달력 1~12월 다 찍어내기
#include<stdio.h>
int month[13]={0,1,2,3,4,5,6,7,8,9,10,11,12};
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
char *weekname[7]={"일","월","화","수","목","금","토"};
int main(void)
{
int y=0,m=0;//년월일
int L_y=0;//작년
int total_day;//일수계산
int week=0;//요일
int m_week[13];
int calendar[13][7][8]={0,};
FILE *out; //출력파일
out=fopen("out.txt","w");
//입력
printf("Input Year : ");
scanf("%d",&y);
// printf("Input month : ");
// scanf("%d",&m);
//윤년계산
if((y%4==0)&& ((y%100!=0)||(y%400)))
day[2]=29;
else
day[2]=28;
//요일 계산
L_y=y-1;
total_day=(L_y+(L_y/4)-(L_y/100)+(L_y/400)+1);
m_week[1]=total_day%7;
for(int i=1;i<12;i++)
{
total_day+=day[i];
m_week[i+1]=total_day%7;
}
// week=total_day%7;
int num_count=1;
for(int j=1;j<=12;++j)
{
// printf("%d월\n",j);
int k=1,q=1;
num_count=1;
for(int i=1;i<=42;++i) //5*7다 돌림
{
if(num_count>day[j]) //날짜 다찍으면 탈출
break;
if(i<=m_week[j])
{
calendar[j][k][q]=0;
// printf("%2d",calendar[j][k][q]);
}
else
{
calendar[j][k][q]=num_count++;
// printf("%2d",calendar[j][k][q]);
}
q++;
if(i%7==0)
{
k++; //열증가
q=1; //행초기화
// printf("\n");
}
}
}
printf("<%d>\n",y);
int s=1; //달
for(int j=1;j<5;j++)
{
printf("%d월\t\t\t%d월\t\t\t%d월\n",s,s+1,s+2);
for(int i=0;i<3;i++)
{
for(int e=0;e<7;e++)
{
printf("%s",weekname[e]);
}
printf("\t\t");
}
printf("\n");
for(int x=1;x<7;++x)
{
for(int y=1;y<8;++y)
{
if(calendar[s][x][y]==0)
printf(" ");
else
printf("%2d",calendar[s][x][y]);
}
printf("\t\t");
for(int y=1;y<8;++y)
{
if(calendar[s+1][x][y]==0)
printf(" ");
else
printf("%2d",calendar[s+1][x][y]);
}
printf("\t\t");
for(int y=1;y<8;++y)
{
if(calendar[s+2][x][y]==0)
printf(" ");
else
printf("%2d",calendar[s+2][x][y]);
}
printf("\n");
}
s=s+3;
}
fclose(out);
}
'☆C언어' 카테고리의 다른 글
개미 문제(틀림) (0) | 2017.11.14 |
---|---|
fflush 함수 (0) | 2017.06.19 |
c언어 꿀팁 (0) | 2014.10.14 |
조건부 컴파일 #if #elif #else #endif (0) | 2013.10.09 |
2차원 배열 포인터 (0) | 2012.09.18 |
설정
트랙백
댓글
글
바이너리 파일 핸들링
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void)
{
FILE *in,*out;
char name[100]={'0',}; //읽을 파일 이름
char *data;
char buf[100]; //버퍼
char new_file_name[100]={'0',}; //파일 이름
char file_name[100]={'0',}; //쓸파일 이름
int file_num=0; //파일번호 숫자형
int size=0; //나눌 파일 크기
char ch; //읽어오는글자1바이트씩
//파일 이름
printf("input file name : ");
gets(name);
//파일 사이즈
printf("file size : ");
scanf("%d",&size);
//파일 읽기
in=fopen(name,"rb");
//생성파일크기
data=(char*)malloc(sizeof(char)*size+1);
strncpy(file_name,name,5); //문자열 5개 복사
//이제 반복생성 준비
while(!feof(in))
{
sprintf_s(buf,sizeof(buf),"%s%d",file_name,file_num++); //생성파일이름 번호 후 증가
out=fopen(buf,"wb");
if(!feof(in))
{
fread(data,size,1,in); //바이트 단위 읽기
fwrite(data,size,1,out); //바위트 단위 쓰기
}
fseek(out,0L,SEEK_END);
printf("파일의 길이: %d\n",ftell(out));
}
fclose(in);
fclose(out);
return 0;
}
설정
트랙백
댓글
글
달력 문제
#include<stdio.h>
int month[13]={0,1,2,3,4,5,6,7,8,9,10,11,12};
int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
char *weekname[7]={"일","월","화","수","목","금","토"};
int main(void)
{
int y=0,m=0;//년월일
int L_y=0;//작년
int total_day;//일수계산
int week=0;//요일
FILE *out; //출력파일
out=fopen("out.txt","w");
//입력
printf("Input Year : ");
scanf("%d",&y);
printf("Input month : ");
scanf("%d",&m);
//윤년계산
if((y%4==0)&& ((y%100!=0)||(y%400)))
day[2]=29;
else
day[2]=28;
//요일 계산
L_y=y-1;
total_day=(L_y+(L_y/4)-(L_y/100)+(L_y/400)+1);
for(int i=1;i<m;i++)
total_day+=day[i];
week=total_day%7;
/////////출력///////////
//년,월 출력
printf("<%d_%02d>\n",y,m);
//요일 출력
for(int i=0;i<7;i++)
printf("%7s", weekname[i]);
printf("\n");
//공백 출력
for(int i=0;i<week;i++)
{
printf("%7c"," ");
}
for(int i=1;i<=day[m];++i)
{
if(week%7==0)
printf("\n");
printf("%7d",i);
week++;
}
fclose(out);
}
'☆C언어 > 소스' 카테고리의 다른 글
괄호 검사 (0) | 2017.06.17 |
---|---|
바이너리 파일 핸들링 (0) | 2017.06.15 |
3n+1 (0) | 2013.06.27 |
3n+1 재귀함수 (0) | 2013.06.27 |
최소의 동전수 (재귀) (0) | 2013.06.23 |