Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- 3. Napisz program, który zapisze do pliku macierz o wymiarach 4×4, a następnie ją odczyta i wypisze na ekran. Wartości elementów macierz powinny być losowane z przedziału (−10,10). Zarówno w pliku, jak i na ekranie macierz ma być podzielona na wiersze.
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define SIZE 4
- void fill_matrix(int8_t matrix[SIZE][SIZE])
- {
- srand(time(NULL));
- for(int i = 0; i < SIZE; i++){
- for(int j = 0; j < SIZE; j++){
- matrix[i][j] = (rand() % 21) - 10;
- }
- }
- }
- void save_to_file(FILE *FILE, int8_t matrix[SIZE][SIZE])
- {
- for(int i = 0; i < SIZE; i++){
- for(int j = 0; j < SIZE; j++){
- fprintf(FILE, "%d ", matrix[i][j]);
- }
- fprintf(FILE, "\n");
- }
- }
- void read_from_file(FILE *FILE)
- {
- int tmp;
- uint8_t rows_counter = 1;
- while(!feof(FILE)){
- fscanf(FILE, "%d", &tmp);
- if(!feof(FILE)){
- printf("%d ", tmp);
- }
- if(rows_counter == SIZE){
- printf("\n");
- rows_counter = 0;
- }
- rows_counter++;
- }
- }
- int main(void)
- {
- int8_t matrix[SIZE][SIZE];
- fill_matrix(matrix); // Wypelnij macierz
- FILE *MATRIX_FILE;
- MATRIX_FILE = fopen("matrix.txt", "w+");
- if(MATRIX_FILE == NULL){
- printf("Blad otwarcia pliku!\n");
- return -1;
- }
- save_to_file(MATRIX_FILE, matrix); // Zapisz macierz do pliku
- if(fseek(MATRIX_FILE, 0, SEEK_SET) == -1){
- printf("Blad przesuwania wskazniku pliku!\n");
- return -1;
- }
- read_from_file(MATRIX_FILE); // Odczytaj macierz z pliku
- if(fclose(MATRIX_FILE)){
- printf("Blad zamkniecia pliku!\n");
- return -1;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement