c - 当我尝试运行黄道十二宫程序时,Windows 卡住

标签 c

我做了一个程序,可以告诉你你的星座。它可以编译,但当我尝试运行它时,Windows 卡住了。

这是我使用的代码:http://codepad.org/V4WAIavW

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

int main()
{

int d, m;

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

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

     switch(m)
     {
              case 1:
                   printf("Introduzca su dia de nacimiento\n");
                   scanf("%i", d);
                   if (d>20)
                   printf("Su signo es acuario\n");
                   else
                   printf("Su signo es capricornio\n");
                   break;

              case 2:
                    printf("Introduzca su dia de nacimiento\n");
                    scanf("%i", d);
                    if (d>19)
                    printf("Su signo es piscis\n");
                    else
                    printf("Su signo es acuario\n");
                    break;

              case 3:
                   printf("Introduzca su dia de nacimiento\n");
                   scanf("%i", d);
                   if (d>20)
                   printf("Su signo es Aries\n");
                   else 
                   printf("Su signo es piscis\n");
                   break;

              case 4:
                    printf("Introduzca su dia de nacimiento\n");
                   scanf("%i", d);
                   if (d>20)
                   printf("Su signo es tauro\n");
                   else
                   printf("Su signo es aries\n");
                   break;

              case 5:
                   printf("Introduzca su dia de nacimiento\n");
                   scanf("%i", d);
                   if (d>21)
                   printf("Su signo es geminis\n");
                   else
                   printf("Su signo es tauro\n");
                   break;

              case 6:
                   printf("Introduzca su dia de nacimiento\n");
                   scanf("%i", d);
                   if (d>21)
                   printf("Su signo es cancer\n");
                   else
                   printf("Su signo es geminis\n");
                   break;

              case 7:    
                   printf("Introduzca su dia de nacimiento\n");
                   scanf("%i", d);
                   if (d>23)
                   printf("Su signo es leo\n");
                   else
                   printf("Su signo es cancer\n");
                   break;

              case 8:
                   printf("Introduzca su dia de nacimiento\n");
                   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 nacimiento\n");
                   scanf("%i", d);
                   if (d>23)
                   printf("Su signo es libra\n");
                   else
                   printf("Su signo es virgo\n");
                   break;

               case 10:
                printf("Introduzca su dia de nacimiento\n");
                   scanf("%i", d);
                   if (d>23)
                   printf("Su signo es escorpio\n");
                   else
                   printf("Su signo es libra\n");
                   break;

                case 11:
                 printf("Introduzca su dia de nacimiento\n");
                   scanf("%i", d);
                   if (d>22)
                   printf("Su signo es sagitario\n");
                   else
                   printf("Su signo es escorpio\n");
                   break;

                case 12:
                 printf("Introduzca su dia de nacimiento\n");
                   scanf("%i", d);
                   if (d>21)
                   printf("Su signo es capricornio\n");
                   else
                   printf("Su signo es sagitario\n");
                   break;


                 system ("pause");


    }

}

我尝试使用“if”而不是“switch”,但它也卡住了。

最佳答案

您的 scanf() 调用应传递一个指向内存中存储输入数据的位置的指针。

例如:

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

关于c - 当我尝试运行黄道十二宫程序时,Windows 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7780622/

相关文章:

c++ - 用户空间中的内存障碍? (Linux,x86-64)

c++ - 调用 D3DX10CreateEffectFromFile() 方法的链接器问题

c - C 中的二叉树 : Traversal specified level

c - x86 保护模式下的键盘中断导致处理器错误

c - fscanf 段错误 - C

c - 段错误何时发生?

c - 在应用加载和运行程序中

将指针转换为二维数组

c - 需要左值作为赋值的左操作数

c - l 值的 c 的奇怪语法(在 linux 内核 : per_cpu)