moj program nie dziala

0

witam napisalem taki program w c++.

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

main()
{
char imie;
char nazwisko;
int znak;

printf("Czy chcesz dodac 1 jakas osobe? Jesli tak nacisnij T, a jesli nie nacisnij N");
scanf("%c", znak);
switch(znak)
{
case 'T': printf("Podaj swoje imie ");
          scanf("%c", imie);
          printf("Podaj swoje nazwisko ");
          scanf("%c", nazwisko);
case 'N': printf("Anulowano");
}
system("pause");
return 0;

}

powinien on dzialac tak: jesli nacisne T to pyta mnie o moje nazwisko itd a jesli nacisne na N to nic nie robi. Naciskam T i mi wyswietla komnikat "nacisnij dowolny klawisz..." co jest zle dlaczego nie pyta mnie o nazwisko i imie? prosze o pomoc jestem poczatkujacy

0

W zasadzie tak też zadziała, ale zmienna znak powinna być typu char, a poza tym:

  scanf("%c",&znak);

Brakuje Ci znaku ampersand - scanf "zapisuje do adresu" zmiennej.

0

albo na strumieniach:

#include <stdio.h>
#include <iostream.h>

main()
{
char imie;
char nazwisko;
char znak;

cout<<"Czy chcesz dodac 1 jakas osobe? Jesli tak nacisnij T, a jesli nie nacisnij N";
cin>>znak;
switch(znak)
{
case 't':
{
 cout<<"Podaj swoje imie ";
 cin>>imie;
 cin.ignore(10,'\\n');
 cout<<"Podaj swoje nazwisko ";
 cin>>nazwisko;
 break;
}
case 'n':
{
cout<<"Anulowano";
break;
}
}
return 0;

}
0

Poza tym, imie i nazwisko powinny być typu char * a nie char.

pzdr,

y.

0

raczej typu string bo jesli char * to access violation gwarantowany

0

Nio jeszcze trzeba zauwazyc, ze 't' != 'T'

0

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

main()
{
char imie;
char nazwisko;
char znak;

printf("Czy chcesz dodac 1 jakas osobe? Jesli tak nacisnij T, a jesli nie nacisnij N");
scanf("%c", znak);
switch(znak)
{
case 'T': printf("Podaj swoje imie ");
          scanf("%c", imie);
          printf("Podaj swoje nazwisko ");
          scanf("%c", nazwisko);
case 'N': printf("Anulowano");
}
system("pause");
return 0;

}
0

zrobilem tak jak na gorze i teraz wyskakuje blad[ale nie podcxas kompilacji tylko podczas gdy ncisnam t lub T]

0

Nie no - ja jakoś nie zauważam różnicy pomiędzy tym co napisałeś dwa posty powyżej a tym co jest na początku tematu... [glowa]
Popełniłeś dalej te same błędy, które Ci tu wytknięto.

Najlepiej to Ty rozejrzyj się za jakimś podstawowym kursem języka C - będziesz wiedział jak działa funkcja scanf, dlaczego w instrukcjach switch - case używa się break'ów i jaka jest różnica pomiędzy char a char []

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

main(){
  char imie[20];
  char nazwisko[30];
  char znak;

  printf("Czy chcesz dodac 1 jakas osobe? Jesli tak nacisnij T, a jesli nie nacisnij N");
  scanf("%c",&znak);
  if(znak>96)znak-=32;
  switch(znak){
    case 'T': printf("Podaj swoje imie ");
                       scanf("%s",imie);
                       printf("Podaj swoje nazwisko ");
                       scanf("%s",nazwisko);
                       break;
    case 'N': printf("Anulowano");
                       break;
    default : printf("bledny wybor");
  }
  system("pause");
  return 0;
}

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