2016-09-07 7 views
0

stdin을 사용하여 두 행렬을 입력 한 다음 결과를 stdout에 표시하는 것은 프로그래밍 작업입니다. 나는 종종 프로그램이 잘 돌아가고있는 동안 런타임 에러 나 표준 입력이나 stdout을 발견했다.숫자를 문자열로 입력 한 다음 솔루션을 표시하려고하는 두 행렬을 추가하려고 시도하지만 표준 입력 및 표준 출력 문제가 발생했습니다.

이것은 두 개의 행렬을 더하는 코드입니다.

 """The constraint is the numbers will be entered only without any 
      string to be seen on console and also that to be in the same 
      fashion being each number input separated by a white space.""" 
      import sys 

      def main(): 

      num1 = [] 
      num2 = [] 

      rc1 = raw_input().split(' ') 
      rc1_arr = [int(z) for z in rc1] 
      r1 = rc1_arr[0] 
      c1 = rc1_arr[1] 
      while(r1 != 0): 
        mat1 = raw_input().split(' ') 
        arr1 = [int(z1) for z1 in mat1] 
        num1.append(arr1) 
        r1=r1-1 

      rc2 = raw_input().split(' ') 
      rc2_arr = [int(z) for z in rc2] 
      r2 = rc2_arr[0] 
      c2 = rc2_arr[1] 
      while(r2 != 0): 
        mat2 = raw_input().split(' ') 
        arr2 = [int(z2) for z2 in mat2] 
        num2.append(arr2) 
        r2=r2-1 

      for i in range(max(rc1_arr[0],rc2_arr[0])): 
       for j in range(max(rc1_arr[1],rc2_arr[1])): 
        su = num1[i][j]+num2[i][j] 
        sys.stdout.write(str(su)) 
        sys.stdout.write(" ") 
       sys.stdout.write("\n") 

     main() 

     """ while running in idle it looks like this 
     ##The input part is: 
     3 3   ## represents no. of rows and columns 
     1 2 3  ## This is the matrix 1 of 3*3 
     4 5 6 
     7 8 9 
     3 3   ## represents no. of rows and columns for second matrix 
     1 1 1  ## This is the matrix 2 of 3*3 
     1 1 1 
     1 1 1 
     ## And the output is like: 
     2 3 4  ## Sum of the above two matrices. 
     5 6 7 
     8 9 10 
     """ 

도와주세요.

+0

가 지정한시겠습니까 입력 및 출력을 당신을 필요. – Ezio

+0

@Ezio 입력과 출력을 살펴보기위한 몇 가지 주석 행을 추가했습니다 ... –

+0

두 행렬의 행과 열 수가 동일하면 프로그램이 제대로 작동하는 것 같습니다. 두 행렬의 행과 열의 수가 다른 경우 실패합니다. – Ezio

답변

0

내가 선 터치하지 않았다 ... 들여 쓰기에 약간의 문제가있을 수있다 (들여 쓰기를 조정하고 예상대로 작동 이외의!)

#!/usr/bin/env pyhton2 
import sys 

def main(): 

    num1 = [] 
    num2 = [] 

    rc1 = raw_input().split(' ') 
    rc1_arr = [int(z) for z in rc1] 
    r1 = rc1_arr[0] 
    c1 = rc1_arr[1] 
    while(r1 != 0): 
     mat1 = raw_input().split(' ') 
     arr1 = [int(z1) for z1 in mat1] 
     num1.append(arr1) 
     r1=r1-1 

    rc2 = raw_input().split(' ') 
    rc2_arr = [int(z) for z in rc2] 
    r2 = rc2_arr[0] 
    c2 = rc2_arr[1] 
    while(r2 != 0): 
     mat2 = raw_input().split(' ') 
     arr2 = [int(z2) for z2 in mat2] 
     num2.append(arr2) 
     r2=r2-1 

    for i in range(max(rc1_arr[0],rc2_arr[0])): 
     for j in range(max(rc1_arr[1],rc2_arr[1])): 
      su = num1[i][j]+num2[i][j] 
      sys.stdout.write(str(su)) 
      sys.stdout.write(" ") 
     sys.stdout.write("\n") 

main() 
+0

코드가 잘 돌아가고 있다는 것을 알았지 만 stdin과 stdout의 입력을 원합니다. 이것이 진정한 과제입니다. 심지어 IDEONE 온라인 통역사가이 결과를 얻지 못하고 있습니다 ... –

+0

그러면 stdin과 stdout은 무엇을 의미합니까? 파일에서 리디렉션을 의미합니까 (stuff.py