Usuwanie danych, język C

Usuwanie danych, język C
K3
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 2 lata
  • Postów:34
0

Cześć, mam taki programik, który zmienia liczbe dziesiętną w binarną, a następnie tworzy obraz z jedynek i zer. (Zrozumiecie jak wpiszecie sobie te dane:)

20 24

0
16128
65504
131056
114936
98424
60
60
30
30
30
30
30
30
30
62
60
124
98428
114936
131056
65504
16256
0

Czy macie pomysl co zrobić aby nie było widać tych właśnie danych, które się wprowadza, żeby został tylko "obraz" Z góry dzięki za odp!

Kopiuj
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void zamien(int x, int n){
    int bin[2000];
    char tab[2000];
    int w=0,i;
    for(int i=0; i<n; ++i)
        bin[i]=0;
    while(x!=0){
        bin[w]=x%2;
        x=x/2;
        w++;
    }
    for(i=0; i<=n; i++){
       if(bin[i]==1) printf("@");
        else printf(",");
    }
}
int main(){
    int n,m,j,i; /* n - l wierszy || m - l kolumn */
    int x;
    scanf("%d",&n);
    scanf("%d",&m);
    for(i=0; i<m; ++i){
        scanf("%d",&x);
         zamien(x,n);
    }

return 0;}
MarekR22
Moderator C/C++
  • Rejestracja:ponad 17 lat
  • Ostatnio:3 minuty
2
Kondzio33 napisał(a):

Zrozumiecie jak wpiszecie sobie te dane:

Ja nie rozumiem:
https://godbolt.org/z/Ko9oG8rrT
No dobra po poprawce widać coś sensownego: https://godbolt.org/z/W3d4GE3ec

Zapisz dane w tablicy i odtwórz obraz z tablicy.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 2x, ostatnio: MarekR22
_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:15 dni
1

Przekieruj dane z pliku:
program.exe < dane.txt
z konsoli.
lub tworzysz szortcut a w nim przekierowujesz z pliku jak wyżej.


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
edytowany 1x, ostatnio: _13th_Dragon
MarekR22
Moderator C/C++
  • Rejestracja:ponad 17 lat
  • Ostatnio:3 minuty
1

https://godbolt.org/z/Y78cs7co8

Kopiuj
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct Glyph {
    int rows;
    int columns;
    int *data;
} Glyph;

void GlyphFree(Glyph* glyph)
{
    free(glyph->data);
}

int GlyphLoad(Glyph* g, FILE* f)
{
    int i;
    
    if (2 != scanf("%d %d", &g->columns, &g->rows))
    {
        return 0;
    }
    g->data = malloc(sizeof(int[g->rows]));
    for(i=0; i < g->rows; ++i){
        scanf("%d", g->data + i);
    }
        
    return 1;
}

void GlyphPrintRow(int x, int n, const char digits[]){
    int i;
    for(i=0; i<=n; i++) {
        putc(digits[x % 2], stdout);
        x /= 2;
    }
    putc('\n', stdout);
}

void GlyphPrint(Glyph *g){
    int i;
    for(i=0; i<=g->rows; i++) {
        GlyphPrintRow(g->data[i], g->columns, ",@");
    }
}

int main(){
    Glyph glyph;
    if (GlyphLoad(&glyph, stdin))
    {
        GlyphPrint(&glyph);
        GlyphFree(&glyph);
    }
    return 0;
}

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.