Yazdığım kodun, bir char işaretçi listesinde a's, c's, t's ve g'nin miktarını sayması bekleniyor. Daha sonra, girilen char a, c, t veya g değilse, geçersiz harfi geçersiz listeye geçersizBase eklenmesi gerekir. Bunun yerine agtcpoop veri girdiğimde Geçersiz Baz yazdırır: ama kaka baskısı gerekiyorsa chars orada değil. Lütfen yardım et! Burada kodudur:İç içe if-else ifadeleri bana sorun veriyor
void countBase(char *p)
{
int aCount = 0, cCount = 0, tCount = 0, gCount = 0;
char invalidBase[100];
int i, j=0;
while(*p != '\0')
{
if(*p == 'A' || *p == 'a')
{
aCount++;
}
else if(*p == 'C' || *p == 'c')
{
cCount++;
}
else if(*p == 'T' || *p == 't')
{
tCount++;
}
else if(*p == 'G' || *p == 'g')
{
gCount++;
}
else
{
invalidBase[j] = *p;
}
j++;
p++;
}
for(i = 0; invalidBase[i] != '\0'; i++)
{
printf("Invalid Base: %c\n", invalidBase[i]);
}
printf(" A: %i\n C: %i\n T: %i\n G: %i\n", aCount, cCount, tCount, gCount);
}
Benim tahminim, başka açıklamada KQUEUE invalidBase gereken bu mu? İşaretçiyi kullanarak mı? Diğer ifadede olduğu gibi * geçersizBase = * p; daha sonra j ++ yerine invalidBase değerini artırın. Bu yakın mı? ** BUNUN MIKECATS TUTULMADIĞINDAN SONRA KAPALI OLDUĞUNU DÜŞÜNÜYORUM! ** – Cole
Hayır, bir dizi olduğu için ve geçersizse otomatik olarak bir dönüştürücü, bir lvalue değil, bir lvalue olarak kullanıldığında, geçersizBase'i artıramazsınız. “sizeof” veya unary '&' operator işlenenleri dışındaki ifadeler. – MikeCAT
Bu "' if-else' ifadeleri yerine 'switch' deyimini kullanmak isteyebilirsiniz. – MikeCAT