rendered paste body#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maxStup 100
#define maxRed 100
#define maxNiz 10
void printMatrix(int* mat, int brRed, int brStup, int defStup){
int i, j;
printf("Ovako izgleda matrica: \n");
for(i = 0; i < brRed;i ++){
for(j = 0; j < brStup; j++)
printf("%d ", mat[i*defStup + j]);
printf("\n");
}
}
void readCharArray(char* t, int maxLength){
do gets(t);
while (strlen(t) < 1 || strlen(t) > maxLength);
}
void printMatrixNew(char* mat, int brRed, int brStup, int defStup){
int i, j;
printf("Ovako izgleda znakovna matrica \n");
for(i = 0; i < brRed; i++){
for(j = 0; j < brStup; j++){
putchar(mat[i*defStup + j]);
printf(" ");
}
printf("\n");
}
}
void readMatrix(int* mat, int brRed, int brStup, int defStup, int maxElement){
int i, j, element;
for(i = 0; i < brRed; i++)
for(j = 0; j < brStup;j ++){
printf("M(%d,%d)=",i,j);
scanf("%d", &element);
mat[i*defStup + j]=element;
if (element > maxElement || element < 0) j--;
}
}
void newMatrix(char* newMatrix, int* oldMatrix, int brRed, int brStup, int defStup, char p[]){
int i, j;
for(i = 0; i < brRed; i++)
for(j = 0; j < brStup; j++)
*(newMatrix+i*defStup+j)=p[*(oldMatrix+i*defStup+j)];
}
int main(){
int mat[maxRed][maxStup];
int brRed, brStup;
char p[maxNiz+1];
char matNova[maxRed][maxStup];
printf("Unesite znakovni niz: ");
readCharArray(p, maxNiz);
do{
printf("Upisite broj redaka matrice iz intervala [1,%d]\n", maxRed);
scanf("%d", &brRed);
}
while (brRed < 1 || brRed > maxRed);
do{
printf("Upisite broj stupaca matrice iz intervala [1,%d]\n", maxRed);
scanf("%d", &brStup);
}
while (brStup < 1 || brStup > maxStup);
readMatrix(&mat[0][0], brRed, brStup, maxStup, strlen(p)-1);
printMatrix(&mat[0][0], brRed, brStup, maxStup);
newMatrix(&matNova[0][0], &mat[0][0], brRed, brStup, maxStup, p);
printMatrixNew(&matNova[0][0], brRed, brStup, maxStup);
system("pause");
return 0;
}