Предмет: Информатика, автор: yrtyfdgfrt

Напишите программу, на вход которой подаётся прямоугольная матрица в виде последовательности строк. После последней строки матрицы идёт строка, содержащая только строку "end" (без кавычек).

Программа должна вывести результат транспонирования исходной матрицы. Элементы строк выводить через пробел.

Sample Input:
3 2
1 4
end

Sample Output:
3 1
2 4

Программу написать в Python.

Ответы

Автор ответа: Аноним
2

   #Непосредственно ввод матрицы

main_list = []

final_end_check = 0

input_row_order = -1

row_end_check = 0

while (final_end_check == 0):

   input_row_order += 1

   input_list = []

   while (row_end_check == 0):

       a = input("Введите число в матрицу")

       try:

           a = int(a)

       except ValueError:

           if (a == "end"):

               if (len(input_list) == len(main_list[input_row_order - 1])):

                   main_list.append(input_list)

               final_end_check = 1

               break

       else:

           input_list.append(a)

       if (input_row_order == 0 and a == "next"):

           main_list.append(input_list)

           print(input_list, "\nВы ввели строку номер", input_row_order + 1, ", её длина равна", len(input_list), ", теперь введите числа в следующую\n")

           break

       if (input_row_order > 0): #Переход на следующую строку с помощью ввода "next"

           if (a == "next" and len(input_list) != len(main_list[input_row_order - 1])):

               print("Длина текущей строки не совпадает с длиной предыдущей (", len(main_list[input_row_order - 1]), "),введите строку заново")

               input_row_order -= 1

               break

           if (a == "next" and (len(input_list) == len(main_list[input_row_order - 1]))):

               print(input_list, "\nВы ввели", input_row_order + 1, "строку, теперь введите числа в следующую\n")

               main_list.append(input_list)

               break

   #Транспонирование матрицы

print("\nОсновная матрица\n")

for i in range(len(main_list)):

   print(main_list[i])

final_list = [[row[i] for row in main_list] for i in range(len(main_list[0]))]

print("\nТранспонированная матрица:\n")

for i in range(len(final_list)):

   print(final_list[i])


yrtyfdgfrt: Ух, а можно только сам код написать? А то я тупой и не понимаю)
Похожие вопросы
Предмет: Русский язык, автор: Izotova06