// algorithm.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> char c[255]; int len; int aa(char *c); int isMinus(char c); int _tmain(int argc, _TCHAR* argv[]) { FILE *f=fopen("input.txt","rt"); int matrix[110][110]; int i,j,max = -0x7fffffff; int mom=-0x7fffffff; int a,n,m; int flag = 0; fscanf(f,"%d %d",&n,&m); int k; for(i=0;i<n;i++) { for(j=0;j<m;j++) { memset(c,0,255); fscanf(f,"%s",&c); k=aa(c); matrix[i][j]=k; } } for(i=0;i<n;i++) { max=-0x7fffffff; for(j=0;j<m;j++) { if(matrix[i][j]>max) max=matrix[i][j]; } printf("row %d: ",i+1); if(max==-0x7fffffff) { printf("NaN \n"); } else { printf("%d\n",max); if(mom<max) mom=max; } } for(i=0;i<m;i++) { max=-0x7fffffff; for(j=0;j<n;j++) { if(matrix[j][i]>max) max=matrix[j][i]; } printf("column %d: ",i+1); if(max==-0x7fffffff) { printf("NaN \n"); } else { printf("%d\n",max); if(mom<max) mom=max; } } printf("matrix: "); if(mom==-0x7fffffff){ printf("NaN\n"); } else printf("%d\n", mom); return 0; } int aa(char *c) { int flag=0,a; len = strlen(c); if( (c[0]=='-' && len>=2) || c[0]>='0' && c[0]<='9' ) flag=0; else flag=1; for(int x=1;x<len;x++) { if(!( c[x] >= '0' && c[x] <= '9')){ flag=1; break; } } if(flag==0) a=atoi(c); if(flag==0) return a; int bu; int sum1=0,sum2=0,x; int sw=0; if(c[0]=='-') sw=1; else if(isdigit(c[0]) ) sum1=0; else return -0x7fffffff; for(x=sw;x<len;x++) { if(!isdigit(c[x])) { if( c[x]=='-' ) bu=1; else if(c[x]=='+') bu=2; else if(c[x]=='*') bu=3; else bu=4; break; } sum1*=10; sum1+=c[x]-48; } if(bu==4) return -0x7fffffff; if(sw==1) sum1*=(-1); sw=x+1; int b=1; if(c[sw]=='-') { b=-1; sw=sw+1; } else if(isdigit(c[sw])) sum2=0; else return -0x7fffffff; for(x=sw;x<len;x++) { if(!isdigit(c[x])) { bu=4; break; } sum2*=10; sum2+=c[x]-48; } if(bu==4) return -0x7fffffff; sum2*=b; switch(bu) { case 1: return sum1-sum2; break; case 2: return sum1+sum2; break; case 3: return sum1*sum2; break; } }