找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4125|回复: 4

[已回复] 一道小白题目,总是提示格式错误

1

主题

1

帖子

1

积分

贫民

积分
1
astronomyzhang 发表于 2016-10-14 11:23:20 | 显示全部楼层 |阅读模式
题目如下:
原题地址https://nanti.jisuanke.com/t/5
晓萌最近在做一个翻转图片的应用,你可能也知道,图片其实是由一个个的点组成的。于是,晓萌想先做一个可以翻转矩阵的程序,来解决他问题的核心部分。
输入第一行包括由空格分开的整数M、N、T(0 < M < 200,0 < N < 200,T=0或1),其中M和N分别表示待处理矩阵的行数与列数,T为0时表示左右翻转,为1时表示上下翻转。
之后的M行,每行包括由空格分隔的N个整数,依次为输入矩阵的每一行的数据。
输出包括M行N列,每个数字之间用一个空格分隔,每一行行末均有一个空格,表示的是按照要求翻转后的矩阵。

样例输入4 4 11 2 3 45 6 7 89 0 1 23 4 5 6
样例输出3 4 5 6 9 0 1 2 5 6 7 8 1 2 3 4







代码如下,求各位帮忙指正:
import copy
s = raw_input("")
M,N,T = s.split(' ')
M = int(M)
N = int(N)
T = int(T)
listshow = [[] for i in range(M)]
for m in range(M):
    lineofrec = raw_input("")
    linereal = lineofrec.split(' ')
    for n in range(N):
        listshow[m].append(linereal[n])
listnew = copy.deepcopy(listshow)
if T == 0:
    for m in range(M):
        for n in range(N):
            listnew[m][n] = listshow[m][N-n-1]
elif T == 1:
    for m in range(M):
        for n in range(N):
            listnew[m][n] = listshow[M-m-1][n]   

for m in range(M):
    for n in range(N):
        print listnew[m][n] + ' ' ,
    print ''

提交后总是提示输出格式错误,麻烦各位帮忙解答一下

回复

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
凌空尘 发表于 2016-10-15 20:31:58 | 显示全部楼层
你的代码没有注释,不是看的很明白,研究了原题之后,在你代码上稍微修改了一下。python2.7条件下测试通过.


若是有其他同学有更简单的思路,求分享



  1. # -*- coding:UTF-8 -*-

  2. import copy

  3. # s="4 4 1"
  4. M = int(raw_input("请输入行数: "))
  5. N = int(raw_input("请输入列数: "))
  6. T = int(raw_input("请选择翻转方式:1 或 0 (1表示上下,0表示左右): "))

  7. listshow = [[] for i in range(M)]

  8. # 用户输入数字生成数组
  9. for m in range(M):  
  10.     lineofm = raw_input("请输入数字: ")
  11.     # linereal = lineofm.split(' ')
  12.     listshow[m].append(lineofm)
  13.     # print(linereal)
  14.     for n in range(N-1):
  15.         lineofn=raw_input("请输入数字: ")
  16.         listshow[m].append(lineofn)
  17.         
  18. #复制原始数组
  19. listnew = copy.deepcopy(listshow)
  20. print listnew
  21. #转换数组
  22. if T == 0:
  23.     for m in range(M):
  24.         for n in range(N):
  25.             listnew[m][n] = listshow[m][-n-1]
  26. elif T == 1:
  27.     for m in range(M):
  28.         for n in range(N):
  29.             listnew[m][n] = listshow[-m-1][n]
  30. print listnew   #输入转换后数组

复制代码
回复 支持 1 反对 0

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
凌空尘 发表于 2016-10-15 20:51:39 | 显示全部楼层
额。。将上述代码放在计算客中调试,显示未通过,应该是矩阵格式的问题,关于矩阵不是很熟悉,我再去补充一下相关知识。。。
回复 支持 反对

使用道具 举报

1

主题

4

帖子

4

积分

贫民

积分
4
凌空尘 发表于 2016-10-15 22:18:25 | 显示全部楼层
忽略我上面的回答。。。。。
sorry。。。是我搞错题目了。。。
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-10-18 08:39:21 | 显示全部楼层
凌空尘 发表于 2016-10-15 22:18
忽略我上面的回答。。。。。
sorry。。。是我搞错题目了。。。

那你是自己解决了?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表