Nie działa mi program w C

0

Program ma pobierać linię znaków i wypisać ją jako tablicę tych znaków oraz pod spodem tablicę tych znaków czytanych od tyłu.
Wygląda to na to ,że while() nie czyta mi warunku '\n' i wychodzi infinity loop.
Coś przeoczyłem?

Kod:

#include<stdio.h>
#define size 255

int main()
{
	char a,tab[255];
	int i=0,j;
printf("Give a line of digits: ");

do
{
scanf("%c",&a);
tab[i]=a;
printf("%3c",tab[i]);
i++;
}
while(a=!'n');

printf("\n");

for(j=i;0<i;j--) printf("%3c",tab[i-1]);


getch();
return 0;
	
} 
0

tam w warunku miało być while(a=!'\n');.Wcieło mi gdzieś przy wklejaniu "" :P

1
while(a=!'n');

  1. 'n' i '\n' to są różne znaki
  2. =! to na pewno nie jest to samo co !=
for(j = i; 0 < i; j--) printf("%3c",tab[i-1]);

  1. To jest pętla nieskończona
  2. Ciągle wypisujesz to samo, bo i się nie zmienia
0

No ok w drugiej pętli faktycznie jest błąd,tyle,że problem głównie jest w pierwszej.
Kod while(tab[i]!='\n'); ma przerywać pętle kiedy linia znaków się skończy,a tego nie robi. Kiedy linia znaków się kończy żąda podania kolejnej...
Jak ten problem rozwiązać?

0

Nie widzę tego: http://ideone.com/znF3rw

0

Heh,tyle błędów zrobiłem ;(
Tak blisko.Dzięki ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1