Zadanie z macierzy bez użycia instrukcji warunkowych – program jest za wolny

0

Mam takie zadanie do zrobienia:

Podano macierz M × N liczb rzeczywistych. Wyjściowe elementy jego kolumn z nieparzystymi numerami porządkowymi (1, 3, ...). Dane wyjściowe elementów macierzy muszą być wykonane w kolejności kolumn. Nie używaj instrukcji warunkowych.

Program jest troszkę wolny i nie wiem co mógłbym zmienić, żeby te nieparzyste sprawdzał. Mógłby ktoś troszkę pomóc ?

#include <stdio.h>
#include <stdlib.h>
void PrintColumn(int **mat, int m, int n)
{
    for(int j=0; j<n; j++)
    {
        for(int i=0; i<m; i++)
            printf("a[%d][%d]=%d\t",i,j,mat[i][j]);
        printf("\n");
    }
}
void InitScan (int **mat, int m, int n)
{
    for(int i=0; i<n; i++)
    {
        printf("Podaj %d wiersz\n",i);
        for(int j=0; j<m; j++)
        {
            printf("mat[%d][%d]=",i,j);
            scanf("%d",&mat[i][j]);
        }
    }
}

int main()
{
    int m,n;
printf("Podaj liczbe wierszy M= ");
scanf("%d",&m);
printf("POdaj liczbe kolumn N= ");
scanf("%d",&n);
int **mat=(int**)malloc(n*sizeof(int*));
for(int i=0; i<n; i++)
    mat[i]=(int*)malloc(m*sizeof(int));
InitScan(mat,n,m);
PrintColumn(mat,m,n);

    return 0;
}
4

Podano macierz M × N liczb rzeczywistych. Wyjściowe elementy jego kolumn z nieparzystymi numerami porządkowymi (1, 3, ...). Dane wyjściowe elementów macierzy muszą być wykonane w kolejności kolumn. Nie używaj instrukcji warunkowych.

To na pewno cała treść zadania? Brzmi jak jakiś bełkot.

0

Tamto miałem w poleceniu przetłumaczone przez naszą panią z informatyki a tutaj angielska wersja:

An M × N matrix of real numbers is given. Output elements of its columns with odd order numbers (1, 3, …). An output of matrix elements must be performed in the order of columns. Do not use conditional statements.

@Edit
Tam float mają być bo własnie widzę, że int dałem.

1

Ona to do bing translatora wrzuciła?

Masz wypisać nieparzyste kolumny. Zapisz sobie macierz kolumnowo i w forze iteruj co 2, to powinno być bardzo proste.

0

Szczerze to nw co ona z tym zrobił. Dzięki za podpowiedzi ale dzisiaj juz chyba nie myślę :D

0

Wszystko prawie działa tylko wyświetla jedną kolumnę a przy większych liczbach kolumn i wierszy powinno ich więcej wyświetlić.

#include <stdio.h>
#include <stdlib.h>
void PrintColumn(float **mat, float m, float n)
{
    for(int j=0; j<n; j+=2)
    {
        for(int i=0; i<m; i+=2)
            printf("[%.2f]\t", mat[i][j]);
        printf("\n");
    }
}
void InitScan (float **mat, float m, float n)
{
    for(int i=0; i<n; i++)
    {
        printf("Podaj %d wiersz\n",i);
        for(int j=0; j<m; j++)
        {
            printf("mat[%d][%d] =",i,j);
            scanf("%f",&mat[i][j]);
        }
    }
}

int main()
{
int m,n;
printf("Podaj liczbe wierszy M= ");
scanf("%d",&m);
printf("POdaj liczbe kolumn N= ");
scanf("%d",&n);
float **mat=(float**)malloc(n*sizeof(float*));
for(int i=0; i<n; i++)
mat[i]=(float*)malloc(m*sizeof(float));
InitScan(mat,n,m);
PrintColumn(mat,m,n);

    return 0;
}
3
Jcobbe napisał(a):

Tamto miałem w poleceniu przetłumaczone przez naszą panią z informatyki a tutaj angielska wersja:

An M × N matrix of real numbers is given. Output elements of its columns with odd order numbers (1, 3, …). An output of matrix elements must be performed in the order of columns. Do not use conditional statements.

@Edit
Tam float mają być bo własnie widzę, że int dałem.

Nawet po angielsku te zadanie to jakiś kretynizm, który niczego nie uczy.
Do not use conditional statements każda pętla ma w sobie conditional statement.

0

No niby tak ale muszę to zrobić.

0 użytkowników online, w tym zalogowanych: 0, gości: 0