C 代码,输入数字时显示 LED

标签 c switch-statement

下面的代码应该接受输入,存储它,然后显示 LED,给出数字作为显示。然而,它给出的是随机 LED,而不是正确的 LED。我检查了一些东西,但我看不出哪里出了问题,你能帮忙吗?

#include <stdio.h>

int main( void )
{
   /* Declare a data variable for each pixel. */
   int a1, a2, a3, a4, a5 =0;
   int b1, b2, b3, b4, b5 =0;
   int c1, c2, c3, c4, c5 =0;
   int d1, d2, d3, d4, d5 =0;
   int e1, e2, e3, e4, e5 =0;
   int f1, f2, f3, f4, f5 =0;
   int g1, g2, g3, g4, g5 =0;
   int h1, h2, h3, h4, h5 =0;
   int i1, i2, i3, i4, i5 =0;
   int j1, j2, j3, j4, j5 =0;
   int k1, k2, k3, k4, k5 =0;
   int l1, l2, l3, l4, l5 =0;


   /* Collect the data from stdin and store in a string */

      char str[6];
      scanf("%s", str);
      int a = str[0] - '0';
      int b = str[1] - '0';
      int c = str[2] - '0';
      int d = str[3] - '0';

   /* Change the pixels to store the shape of the numbers to be displayed */   

      switch ( a ) {
      case 0:
        a1, b1, c1, a2, c2, a3, c3, a4, c4, a5, b5, c5 = 1;
        break;
      case 1:
        c1, c2, c3, c4, c5 = 1;
        break;
      case 2:
        a1, b1, c1, c2, a3, b3, c3, a4, a5, b5, c5 = 1;
        break;
      case 3:
        a1, b1, c1, c2, a3, b3, c3, c4, a5, b5, c5 = 1;
        break;
      case 4:
        a1, c1, a2, c2, a3, b3, c3, b4, b5 = 1;
        break;
      case 5:
        a1, b1, c1, a2, a3, b3, c3, c4, a5, b5, c5 = 1;
        break;
      case 6:
        a1, b1, c1, a2, a3, b3, c3, a4, c4, a5, b5, c5 = 1;
        break;
      case 7:
        a1, b1, c1, c2, c3, c4, c5 = 1;
        break;
      case 8:
        a1, b1, c1, a2, c2, a3, b3, c3, a4, c4, a5, b5, c5 = 1;
        break;
      case 9:
        a1, b1, c1, a2, c2, a3, b3, c3, c4, c5 = 1;
        break; 
      default:
        printf("Please input a valid number");
        return 0;
          break;
}

switch ( b ) {
      case 0:
        d1, e1, f1, d2, f2, d3, f3, d4, f4, d5, e5, f5 = 1;
        break;
      case 1:
        f1, f2, f3, f4, f5 = 1;
        break;
      case 2:
        d1, e1, f1, f2, d3, e3, f3, d4, d5, e5, f5 = 1;
        break;
      case 3:
        d1, e1, f1, f2, d3, e3, f3, f4, d5, e5, f5 = 1;
        break;
      case 4:
        d1, f1, d2, f2, d3, e3, f3, e4, e5 = 1;
        break;
      case 5:
        d1, e1, f1, d2, d3, e3, f3, f4, d5, e5, f5 = 1;
        break;
      case 6:
        d1, e1, f1, d2, d3, e3, f3, d4, f4, d5, e5, f5 = 1;
        break;
      case 7:
        d1, e1, f1, f2, f3, f4, f5 = 1;
        break;
      case 8:
        d1, e1, f1, d2, f2, d3, e3, f3, d4, f4, d5, e5, f5 = 1;
        break;
      case 9:
        d1, e1, f1, d2, f2, d3, e3, f3, f4, f5 = 1;
        break; 
      default:
        printf("Please input a valid number");
        return 0;
          break;
}

switch ( c ) {
      case 0:
        g1, h1, i1, g2, i2, g3, i3, g4, i4, g5, h5, i5 = 1;
        break;
      case 1:
        i1, i2, i3, i4, i5 = 1;
        break;
      case 2:
        g1, h1, i1, i2, g3, h3, i3, g4, g5, h5, i5 = 1;
        break;
      case 3:
        g1, h1, i1, i2, g3, h3, i3, i4, g5, h5, i5 = 1;
        break;
      case 4:
        g1, i1, g2, i2, g3, h3, i3, h4, h5 = 1;
        break;
      case 5:
        g1, h1, i1, g2, g3, h3, i3, i4, g5, h5, i5 = 1;
        break;
      case 6:
        g1, h1, i1, g2, g3, h3, i3, g4, i4, g5, h5, i5 = 1;
        break;
      case 7:
        g1, h1, i1, i2, i3, i4, i5 = 1;
        break;
      case 8:
        g1, h1, i1, g2, i2, g3, h3, i3, g4, i4, g5, h5, i5 = 1;
        break;
      case 9:
        g1, h1, i1, g2, i2, g3, h3, i3, i4, i5 = 1;
        break; 
      default:
        printf("Please input a valid number");
        return 0;
          break;
}

switch ( d ) {
      case 0:
        j1, k1, l1, j2, l2, j3, l3, j4, l4, j5, k5, l5 = 1;
        break;
      case 1:
        l1, l2, l3, l4, l5 = 1;
        break;
      case 2:
        j1, k1, l1, l2, j3, k3, l3, j4, j5, k5, l5 = 1;
        break;
      case 3:
        j1, k1, l1, l2, j3, k3, l3, l4, j5, k5, l5 = 1;
        break;
      case 4:
        j1, l1, j2, l2, j3, k3, l3, k4, k5 = 1;
        break;
      case 5:
        j1, k1, l1, j2, j3, k3, l3, l4, j5, k5, l5 = 1;
        break;
      case 6:
        j1, k1, l1, j2, j3, k3, l3, j4, l4, j5, k5, l5 = 1;
        break;
      case 7:
        j1, k1, l1, l2, l3, l4, l5 = 1;
        break;
      case 8:
        j1, k1, l1, j2, l2, j3, k3, l3, j4, l4, j5, k5, l5 = 1;
        break;
      case 9:
        j1, k1, l1, j2, l2, j3, k3, l3, l4, l5 = 1;
        break; 
      default:
        printf("Please input a valid number");
        return 0;
          break;
}

      /* Display the pixels in the correct order */

         if (a1 == 1 )
            printf("O");
         else
            printf(" ");

         if (b1 == 1 )
            printf("O");
         else
            printf(" ");

         if (c1 == 1 )
            printf("O");
         else
            printf(" ");

         if (d1 == 1 )
            printf("O");
         else
            printf(" ");

         if (e1 == 1 )
            printf("O");
         else
            printf(" ");

         if (f1 == 1 )
            printf("O");
         else
            printf(" ");

         if (g1 == 1 )
            printf("O");
         else
            printf(" ");

         if (h1 == 1 )
            printf("O");
         else
            printf(" ");

         if (i1 == 1 )
            printf("O");
         else
            printf(" ");

         if (j1 == 1 )
            printf("O");
         else
            printf(" ");

         if (k1 == 1 )
            printf("O");
         else
            printf(" ");

         if (l1 == 1 )
            printf("O\n");
         else
            printf(" \n");

         if (a2 == 1 )
            printf("O");
         else
            printf(" ");

         if (b2 == 1 )
            printf("O");
         else
            printf(" ");

         if (c2 == 1 )
            printf("O");
         else
            printf(" ");

         if (d2 == 1 )
            printf("O");
         else
            printf(" ");

         if (e2 == 1 )
            printf("O");
         else
            printf(" ");

         if (f2 == 1 )
            printf("O");
         else
            printf(" ");

         if (g2 == 1 )
            printf("O");
         else
            printf(" ");

         if (h2 == 1 )
            printf("O");
         else
            printf(" ");

         if (i2 == 1 )
            printf("O");
         else
            printf(" ");

         if (j2 == 1 )
            printf("O");
         else
            printf(" ");

         if (k2 == 1 )
            printf("O");
         else
            printf(" ");

         if (l2 == 1 )
            printf("O\n");
         else
            printf(" \n");

         if (a3 == 1 )
            printf("O");
         else
            printf(" ");

         if (b3 == 1 )
            printf("O");
         else
            printf(" ");

         if (c3 == 1 )
            printf("O");
         else
            printf(" ");

         if (d3 == 1 )
            printf("O");
         else
            printf(" ");

         if (e3 == 1 )
            printf("O");
         else
            printf(" ");

         if (f3 == 1 )
            printf("O");
         else
            printf(" ");

         if (g3 == 1 )
            printf("O");
         else
            printf(" ");

         if (h3 == 1 )
            printf("O");
         else
            printf(" ");

         if (i3 == 1 )
            printf("O");
         else
            printf(" ");

         if (j3 == 1 )
            printf("O");
         else
            printf(" ");

         if (k3 == 1 )
            printf("O");
         else
            printf(" ");

         if (l3 == 1 )
            printf("O\n");
         else
            printf(" \n");

         if (a4 == 1 )
            printf("O");
         else
            printf(" ");

         if (b4 == 1 )
            printf("O");
         else
            printf(" ");

         if (c4 == 1 )
            printf("O");
         else
            printf(" ");

         if (d4 == 1 )
            printf("O");
         else
            printf(" ");

         if (e4 == 1 )
            printf("O");
         else
            printf(" ");

         if (f4 == 1 )
            printf("O");
         else
            printf(" ");

         if (g4 == 1 )
            printf("O");
         else
            printf(" ");

         if (h4 == 1 )
            printf("O");
         else
            printf(" ");

         if (i4 == 1 )
            printf("O");
         else
            printf(" ");

         if (j4 == 1 )
            printf("O");
         else
            printf(" ");

         if (k4 == 1 )
            printf("O");
         else
            printf(" ");

         if (l4 == 1 )
            printf("O\n");
         else
            printf(" \n");

         if (a5 == 1 )
            printf("O");
         else
            printf(" ");

         if (b5 == 1 )
            printf("O");
         else
            printf(" ");

         if (c5 == 1 )
            printf("O");
         else
            printf(" ");

         if (d5 == 1 )
            printf("O");
         else
            printf(" ");

         if (e5 == 1 )
            printf("O");
         else
            printf(" ");

         if (f5 == 1 )
            printf("O");
         else
            printf(" ");

         if (g5 == 1 )
            printf("O");
         else
            printf(" ");

         if (h5 == 1 )
            printf("O");
         else
            printf(" ");

         if (i5 == 1 )
            printf("O");
         else
            printf(" ");

         if (j5 == 1 )
            printf("O");
         else
            printf(" ");

         if (k5 == 1 )
            printf("O");
         else
            printf(" ");

         if (l5 == 1 )
            printf("O");
         else
            printf(" ");
}

最佳答案

对于每件事:

c1, c2, c3, c4, c5 = 1;

如果您尝试将它们全部设置为 1。您需要这样做:

c1 = 1;
c2 = 1;
c3 = 1;
c4 = 1;
c5 = 1;

或者:

c1 = c2 = c3 = c4 = c5 = 1;

换句话说,您需要单独设置每一项。

也就是说,您应该使用数组来执行此操作。

关于C 代码,输入数字时显示 LED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8872527/

相关文章:

c - libev 循环在空闲时使用 99% 的 CPU

PHP开关和大小写逻辑控制

enums - swift : 'Rank? does not have a member named ' simpleDescription'?

C# - 哪个是 ‘switch on type’ 的最佳替代方案?

在 C 中比较 ""和 ""

c++ - linux 上的链接问题(找不到合适的库的名称)

c++ - 不可预测的输出

C: 如何列出目录中文件和子目录的数量

c - 此 C 代码的哪一部分缺失或需要更改?

swift - 错误: Expression pattern of type 'CountableClosedRange<Int>' cannot match values of type 'UITextField!'