imported>zeldababo |
imported>miura0806 |
| Line 1: |
Line 1: |
| // algorithm.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
| | [[DeleteThisPage]] |
| //
| |
|
| |
| #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;
| |
| }
| |
| }
| |
|
| |
|