Może mi ktoś powiedzieć co złego jest w tym kodzie. Wiem, że nie jest doskonały, ale przykładowe testy przechodzą.
#include <iostream>
#include <cmath>
using namespace std;
int x, y, z;
int main ()
{
cin>>x>>y;
int tabl[x][y];
int tabl2[y][x];
for(int i=1;i<=x;i++)
{
for(int w=1;w<=y;w++)
{
cin>>tabl[i][w];
}
}
for(int e=1;e<=y;e++)
{
for(int q=1;q<=x;q++)
{
tabl2[e][q]=tabl[q][e];
}
}
for(int r=1;r<=y;r++)
{
for(int p=1;p<=x;p++)
{
cout<<tabl2[r][p]<<" ";
}
cout<<endl;
}
cin.ignore();
getchar();
return 0;
}
Wali NZEC'iem jakiś pomysł?
Program w C#
EDIT:
jeszcze wpadł mi do głowy pomysł, że to przez tego stringa w tablicach ale zmieniłem na inty i dalej to samo
using System;
namespace 1042.Transponowaniemacierzy___TRN
{
class Program
{
static void Main(string[] args)
{
string line;
int columns=0, rows=0;line = Console.ReadLine(); string[] split = line.Split(' '); rows = Convert.ToInt32(split[0]); columns = Convert.ToInt32(split[1]); string[,] macierz = new string[rows, columns]; string[,] transponowana = new string[columns, rows]; for(int i =0; i < rows; i++) { line = Console.ReadLine(); string[] split1 = line.Split(' '); for(int j = 0; j < split1.Length; j++) { macierz[i, j] = split1[j]; } } for(int i =0; i < columns; i++) { for(int j =0; j < rows; j++) { transponowana[i, j] = macierz[j, i]; } } for(int i =0; i < columns; i++) { for(int j =0; j < rows; j++) { if (j != rows - 1) Console.Write(transponowana[i, j] + " "); else if (i == columns - 1) Console.Write(transponowana[i, j]); else Console.WriteLine(transponowana[i, j]); } } } }
}
Cześć nie mam pojęcia dlaczego kod nie przechodzi
u mnie działa poprawnie. Pisane w javie:
`import java.util.*;
import java.lang.*;
class Main
{
public static void main (String[] args) throws java.lang.Exception
{
int m,n;
Scanner scan= new Scanner(System.in);
m=scan.nextInt();
n=scan.nextInt();
int tab[][]=new int [m][n];
for(int i=0; i<m; i++)
for(int j=0; j<n; j++){
tab[i][j]=scan.nextInt();
}
int tab2 [][]=new int [n][m];
for(int j=0; j<n; j++)
for(int i=0; i<m; i++){
tab2[j][i]=tab[i][j];
}
for(int j=0; j<n; j++){
for(int i=0; i<m; i++){
System.out.print(tab2[j][i]+ " ");
}
System.out.println();
}
}
}`
A może powinieneś napisać dokładniej czemu nie przechodzi?
Nie przechodzi z powodu przekroczenia limitu czasu.
http://213.192.104.217/phpBB3-spoj-pl-backup/viewtopic.php?f=10&t=1209&sid=75194fe608dc3d89b8d39e55a33165ab37
#include <iostream>
int n, m;
using namespace std;
int main()
{
cin >> m >> n;
int t[m][n];
for (int i=1;i<=m;i++)
{
for (int j=1;j<=n;j++)
{
cin >> t[i][j];
}
}
for (int i=1;i<=n;i++)
{
for (int j=1;j<m;j++)
{
cout << t[j][i] << " ";
}
cout << t[m][i];
cout << endl;
}
return 0;
}
bardzo prosze o pomoc xd wyniki dzialaja, spacje sa opanowane ale cos nie smiga ...
Poniższy kod generuje werdykt przekroczony limit czasu. Czy można przyśpieszyć poniższy kod, czy konieczne będzie inne rozwiązanie?
`Scanner in = new Scanner(System.in);
int w = in.nextInt();
int k = in.nextInt();
int[] values = new int[w*k];
for(int i=0;i<w*k;i++){
values[i]=in.nextInt();
}
for(int i=0;i<k;i++){
for(int j=0;j<w;j++){
System.out.print(values[i+j*k] + " ");
}
System.out.println();
}`