3항 연산자의 극단적 사용예 #include <stdio.h> int main() { int num; printf("점수: "); scanf("%d", &num); printf("%s", ((num>95) ? "A+" : ((num>90) ? "A" : ((num>85) ? "B+" : ((num>80) ? "B" : "C"))))); return 0; } c·c++/c 프로그래밍 2012.03.31
2차원 테이블 랜덤하게 섞기 #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int i,j,p1,p2, tmp, size=4; int table[4][4]; srand(time(NULL)); for(i=0;i<size;i++) { for(j=0;j<size;j++) { table[i][j]=i*size+j+1; } } for(i=0;i<size;i++) { for(j=0;j<size;j++) { tmp=table[i][j]; p1=rand()%size; p2=rand()%size; table[i][j]=table[p1][p2]; table[p1][p2]=tmp; } } .. c·c++/c 프로그래밍 2012.03.30
<태그>를 모두 삭제하는 프로그램 #include <stdio.h> int main() { FILE *fin; FILE *fout; char buf[1000]; char newbuf[1000]; char *bp, *np; fin=fopen("data.txt", "r"); if(fin==NULL) { printf("파일을 읽을수 없습니다."); return 1; } fout=fopen("new.txt","w"); while(!feof(fin)) { fgets(buf, 999, fin); bp=buf; np=newbuf; while(*bp) { if((*bp)!='<') *np++=*bp++; else { bp++; while((*bp)!='>') b.. c·c++/c 프로그래밍 2012.03.29
엔터를 치면 탈출할려면? #include <stdio.h> int main(void) { char choice; while(1) { printf("choice (1,2,3): "); scanf("%c", &choice); switch(choice) { case '1': printf("1..\n"); break; case '2': printf("2..\n"); break; case '3': printf("3..\n"); break; //case 엔터값 들어오면 종료 case '\n': printf("Enter.."); return 1; default: printf("다시 입력해주세요\n"); } fflush(stdin); } .. c·c++/c 프로그래밍 2012.03.29
c언어를 명령프롬프트에 띄우는 방법 - Visual c++ 2010 명령 프롬프트에서 cd "C:\Program Files\Microsoft Visual Studio 10.0\VC\bin" dir vcvars32 를 하면 환경변수 설정이 끝난다. 자기의 작업 디렉토리에서 cl s.c 혹은 cl s.cpp 고 컴파일을 하면 s.exe 라는 실행파일이 만들어 진다. s 라고 실행을 하면 된다. (CL 이라고 해준다. 소문자 CL cl) c·c++/c 프로그래밍 2012.03.29
입력을 받는 수의 숫자를 뒤집는 법 1234/10을 하면 결과는 123입니다. (정수의 경우) 1234%10을 하면 결과는 4입니다. x=1234; x1=x%10; // x1은 4 x=x/10; // x는 123 x2=x%10; // x2는 3 x=x/10; // x는 12 x3=x%10; // x3는 2 x=x/10; // x는 1 x4=x%10; // x4는 1 ........ 이렇게 x가 0이 될때 까지 하면 됩니다. x=1234; i=0; while(x) { xarr[i]=x%10; x=x/10; i=i+1; } 위와 같이 해.. c·c++/c 프로그래밍 2012.03.29
float 입출력에 관한 질문 #include<stdio.h> int main(void) { float a; scanf("%d", &a); printf("%d \n, a); return 0; } C공부하고 있는데요. 원래 위의 경우 float형으로 변수 a를 선언할 경우 입출력을 %f로 해야 하는데, 위와 같이 %d 정수형으로 입출력 하도록 프로그래밍할 경우 제대로된 값이 안나오자나요. 예를 들어 10을 입력 결.. c·c++/c 프로그래밍 2012.03.29
하노이탑, 배열로 보여주기 #include <stdio.h> int a[5]={4,4,3,2,1}; // a[0] 는 stack a 의 top을 나타낸다 int b[5]={0,}; // b[0] stack b top int c[5]={0,}; // c[0] stack c top int *z[3]={a,b,c}; void show() { int i; printf("A: ");for(i=1;i<5;i++) printf("%d ",a[i]); printf(" "); printf("B: ");for(i=1;i<5;i++) printf("%d ",b[i]); printf(" "); printf("C: ");for(i=1;i<5;i++) printf("%d.. c·c++/c 프로그래밍 2012.03.29
fgets로 파일읽기 #include <stdio.h> int main() { FILE *fin; char buf[100]; fin=fopen("input.txt", "r"); if(fin==NULL) { printf("file: input.txt does not exist!"); return -1; } while(!feof(fin)) { fgets(buf, 100, fin); printf("%s", buf); } fclose(fin); return 0; } c·c++/c 프로그래밍 2012.03.27
문자열 복사하기 #include <stdio.h> void strcpy1(char *s, char *t) { int i=0, j=0; // i,j 두개를 사용하는 편이 훨씬 코드가 깔끔합니다. while((s[i++]=t[j++])!=' '); s[i]=0; // 문자열의 끝에는 널문자(0)가 들어가야 합니다. } void strcpy2(char *s, char *t) { while((*s++=*t++)!=' '); *s=0; } int main() { char source[100]="ThisLineIsVeryLong this line is ve.. c·c++/c 프로그래밍 2012.03.27