하고싶은거

카테고리 없음 2017. 6. 19. 02:49

물고기 기르기


스쿠어 다이빙


소설쓰기


그림잘그리기


노래잘하기


동영상 편집 잘하기


스쿠터나 오토바이 타기

바이너리

카테고리 없음 2017. 6. 19. 02:44

#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;


}

달력 깔끔한듯

카테고리 없음 2017. 6. 19. 01:44

#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;

}



}

괄호 검사

☆C언어/소스 2017. 6. 17. 18:48

조건 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월 다 찍어내기

☆C언어 2017. 6. 17. 01:42

#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

바이너리 파일 핸들링

☆C언어/소스 2017. 6. 15. 10:56

#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;


}



'☆C언어 > 소스' 카테고리의 다른 글

달력  (0) 2017.11.13
괄호 검사  (0) 2017.06.17
달력 문제  (0) 2017.06.14
3n+1  (0) 2013.06.27
3n+1 재귀함수  (0) 2013.06.27

달력 문제

☆C언어/소스 2017. 6. 14. 00:49

#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