Когда я пытаюсь запустить свою программу знаков Зодиака, Windows зависает

#c

#c

Вопрос:

Я создал программу, которая сообщает вам ваш знак зодиака. Она компилируется, но когда я пытаюсь ее запустить, Windows зависает.

Это код, который я использовал: http://codepad.org/V4WAIavW

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

int main()
{

int d, m;

printf("Bienvenido al calculador de signo zodiacal 3000n");
printf("Por favor introduzca su mes de nacimienton");

scanf("%i", amp;m);
     system ("pause");

     switch(m)
     {
              case 1:
                   printf("Introduzca su dia de nacimienton");
                   scanf("%i", d);
                   if (d>20)
                   printf("Su signo es acuarion");
                   else
                   printf("Su signo es capricornion");
                   break;

              case 2:
                    printf("Introduzca su dia de nacimienton");
                    scanf("%i", d);
                    if (d>19)
                    printf("Su signo es piscisn");
                    else
                    printf("Su signo es acuarion");
                    break;

              case 3:
                   printf("Introduzca su dia de nacimienton");
                   scanf("%i", d);
                   if (d>20)
                   printf("Su signo es Ariesn");
                   else 
                   printf("Su signo es piscisn");
                   break;

              case 4:
                    printf("Introduzca su dia de nacimienton");
                   scanf("%i", d);
                   if (d>20)
                   printf("Su signo es tauron");
                   else
                   printf("Su signo es ariesn");
                   break;

              case 5:
                   printf("Introduzca su dia de nacimienton");
                   scanf("%i", d);
                   if (d>21)
                   printf("Su signo es geminisn");
                   else
                   printf("Su signo es tauron");
                   break;

              case 6:
                   printf("Introduzca su dia de nacimienton");
                   scanf("%i", d);
                   if (d>21)
                   printf("Su signo es cancern");
                   else
                   printf("Su signo es geminisn");
                   break;

              case 7:    
                   printf("Introduzca su dia de nacimienton");
                   scanf("%i", d);
                   if (d>23)
                   printf("Su signo es leon");
                   else
                   printf("Su signo es cancern");
                   break;

              case 8:
                   printf("Introduzca su dia de nacimienton");
                   scanf("%i", d);
                   if (d>23)
                   printf("Su signo es Virgo");
                   else
                   printf("Su signo es leo");
                   break;

              case 9:
               printf("Introduzca su dia de nacimienton");
                   scanf("%i", d);
                   if (d>23)
                   printf("Su signo es libran");
                   else
                   printf("Su signo es virgon");
                   break;

               case 10:
                printf("Introduzca su dia de nacimienton");
                   scanf("%i", d);
                   if (d>23)
                   printf("Su signo es escorpion");
                   else
                   printf("Su signo es libran");
                   break;

                case 11:
                 printf("Introduzca su dia de nacimienton");
                   scanf("%i", d);
                   if (d>22)
                   printf("Su signo es sagitarion");
                   else
                   printf("Su signo es escorpion");
                   break;

                case 12:
                 printf("Introduzca su dia de nacimienton");
                   scanf("%i", d);
                   if (d>21)
                   printf("Su signo es capricornion");
                   else
                   printf("Su signo es sagitarion");
                   break;


                 system ("pause");


    }

}
  

Я попытался использовать «if» вместо «switch», но он тоже зависает.

Комментарии:

1. Означает ли Windows операционную систему Windows?

Ответ №1:

Ваши scanf() вызовы должны передавать указатель на место в памяти, где будут храниться входные данные.

Например:

 scanf("%i", amp;d); // amp;d is the location in memory of d
  

Комментарии:

1. лол, я не могу в это поверить, я знаю, что должен использовать это таким образом, но я забыл это указать. Спасибо!!