Obračanje znakov...

Imam program, v katerem vnesem število, napr 12, on mi pa izpiše v dvojiškem 0011, kar seveda ni prav, saj bi moral 1100. Se pravi, je treba te številke obrniti. Pa poskušam, in mi ne rata. Koda je v C-ju.

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

int main(int argc, char *argv[])
{
int vnos;
int x;
char tabela[100];
int i=0;
scanf("%d",&vnos);

while(vnos>0)
{
    x=vnos%2;
    vnos=vnos/2;
    tabela*=x;
    printf("%d",x);
}
for(i=strlen(tabela)-1; i>=0; i--)
{
       printf("%c",tabela*);
}

}**

4 odgovori

Pred časom smo na faksu delali podobno nalogo.. in to isto težavo sem rešil z klicom metode Array.Reverse (C#). Pogooglaj mogoče za C tudi obstaja..

Kako bi lahko izpisal dolžino vnesenega niza ? naprimer če vnesem 100110, mi vrne 6 ? Ker mi vedno zateži zradi charov pa int...

Pa kako sploh izpišeš nek znak v besedi ? Recimo Abeceda rečem izpiši znak[2] in izpiše "e".

http://www.roseindia.net/c-tutorials/c-string-reverse.shtml

#include <stdio.h>
#include <conio.h>
#include <string.h>
int reverse(int i);
char st[]="Hello World";
void main() {
printf("\nThe string is: %s", st);
reverse(0);
printf("\nReversed string is: %s", st);
getch();
}
int reverse(int i) {
if (i<(strlen(st)/2)) {
char c;
c= st;
st
=st[strlen(st)-i-1];
st[strlen(st)-i-1]=c;
}
return 0;
}**

al pa pač v google vpiši C String reverse...