我试图将一个角色输入一个链表,其中的角色可以是'A','a','G','g','T','t','C'或'c'.
我还不熟悉C,我知道我搞砸了一些东西:
do{
printf ("\nEnter a new nucleotide: \n");
scanf("%c",&newChar);
/* Checking */
if(newChar == 'A' ||
newChar == 'a' ||
newChar == 'G' ||
newChar == 'g' ||
newChar == 'T' ||
newChar == 't' ||
newChar == 'C' ||
newChar == 'c' )
{
AddToSequence(newChar);
size++;
} else {
printf ("\nBad Element");
}
}while(newChar != 'x');
Run Code Online (Sandbox Code Playgroud)
newChar初始化为垃圾值,在本例中为"q".
输入'x'退出循环,输入任何可接受的值调用AddToSequence(),任何不可接受的值都会收到警告.
出于某种原因,无论newChar中有什么价值,它都会跳转到其他地方.它也会直接跳过scanf,无需等待用户输入,每次循环时都会执行两次循环.谁能告诉我哪里出错了?
完整计划:
#include<stdio.h>
#include<stdlib.h>
/*Structure declaration for the node*/
struct node{
char nucleotide;
struct node *point;
}*start;
/* Adds a …Run Code Online (Sandbox Code Playgroud)