读取字符

时间:2017-03-10 10:08:14

标签: c

此代码应该记下每个字符,看看它的' A'或者' T'。然后,如果需要一个' A'它应该忽略下一个A'字符,直到它需要一个' T'。它有点像匹配A'和' T'像dna链。

while循环中,我期望在每个循环中它将需要另一个(下一个)char,但switch satatement只运行一次。

我该如何修复?

#include <stdio.h>

int main(){
    int a=0, t=0, i=0;           //definitions
    char c;     
    c = getchar();

    //only the first 25 characters will be processed.
    while (i < 25){      
        switch (c){
            case 'A': 
                a++; 
                break;
            case 'T': 
                t++;
                break;
        }           
        if (a > t+1){       
            c = c - 'A';
            a--;
        }
        if (t > a+1){   
            c = c - 'T';
            t--;
        } 
        i++;
    }
    putchar(c); 
    return 0;
}

1 个答案:

答案 0 :(得分:0)

我没有纠正它的对齐和所有。只是逻辑

#include <stdio.h>
int main()
{  
   int a=0,t=0,i=0;           //definitions
   char c;

   while (i<25){           //only the first 25 characters will be processed.
       c = getchar();      // Moved getchar() inside While
       switch (c){
         case 'A': a++; 
         break;
         case 'T': t++;
         break;
       }   
       if (a>t+1){
          c = c - 'A';
          a--;
       }
       if (t>a+1){
           c = c - 'T';
           t--;
       } 
       i++;
       putchar(c);  //Moved to inside while
   }
   return 0;
}