구현 코드:

 

 

#include <stdio.h> #include <stdlib.h> #include <string.h> #define OUT_FILE_NAME "output.txt" #define INPUT_FILE_NAME "input.txt" void ReadInput(int *len, int *type); void WriteOutput(char *text); void RemoveOutput(); void ProcType1(int len); void ProcType2(int len); void ProcType3(int len); int main() { int len =0, type=0; void (*ProcTypeFn[4])(int); ProcTypeFn[1] = ProcType1; ProcTypeFn[2] = ProcType2; ProcTypeFn[3] = ProcType3;      RemoveOutput(); ReadInput(&len, &type); if((type >= 1 && type <= 3) && (len > 0 && len <=100)) { ProcTypeFn[type](len); } else { WriteOutput("INPUT ERROR!"); } return 0; } void ProcType1(int len) { //* //** //*** //**** //***** int i=0,j=0; for(i=1;i<=len;i++) { for(j=0;j<i;j++) { WriteOutput("*"); } WriteOutput("\n"); } } void ProcType2(int len) { //***** //**** //*** //** //* int i=0,j=0; for(i=len;i>0;i--) { for(j=0;j<i;j++) { WriteOutput("*"); } WriteOutput("\n"); } } void ProcType3(int len) { //    *    //4 //   ***   //3 //  *****  //2 // ******* //1 //********* int i=0,j=0,k=0; for(i=1;i<=len;i++) { for(j=len-i;j>0;j--) { WriteOutput(" "); } for(k=0;k<(i*2)-1;k++) { WriteOutput("*"); } WriteOutput("\n"); } } void RemoveOutput() { unlink(OUT_FILE_NAME); } void WriteOutput(char *text) { FILE* fs; char *res=0; fs=fopen(OUT_FILE_NAME,"a"); if(fs) { while(*text != '\0') { fwrite(text, 1, 1, fs); text++; } fclose(fs); } } void ReadInput(int *len, int *type) { FILE* fs; char data[100]={0}; char *res=0; fs=fopen(INPUT_FILE_NAME,"r"); if(fs) { fread(data, sizeof(char),5,fs); *len = atoi(strtok(data, " ")); *type = atoi(strtok(0, " ")); fclose(fs); } }

 

+ Recent posts