gpt4 book ai didi

c - 使用 for 循环打印特定的 "non-vowel, vowel, non-vowel"单词

转载 作者:太空宇宙 更新时间:2023-11-04 05:53:40 28 4
gpt4 key购买 nike

我的任务是打印由“非元音、元音、非元音”组成的单词列表,即 bab、bac、bad、bad ... 到 zuz。

我已经设法创建了一个代码,它执行前两个字母,但在最后一个循环中丢失并只打印'}' - 这对我来说似乎很奇怪。代码如下:

#include <stdio.h>
#include <string.h>


int check_vowel(char c);
int check_consonant(char c);
int main ()
{

char c, c2, c3;
int cnt;

for (cnt = 0; cnt <= c; cnt++)
{
for (c = 'a'; c <= 'z'; c++)
{
if (check_vowel(c) == 0)
{
for (c2 = 'a'; c2 <= 'z'; c2++)
{
if (check_consonant(c2) == 0)
{
for (c3 = 'a'; c3 <= 'z'; c3++);
{
if (check_vowel(c3) == 0)
{
cnt++;
printf("%d || %c%c%c\n", cnt, c, c2, c3);
}
}
}
}
}
}
}



printf("Total names = %d", cnt);

return 0;

}

int check_vowel(char c)

{
switch(c)
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
return 1;
default:
return 0;
}
}

int check_consonant(char c)
{
switch(c)
{
case 'b':
case 'c':
case 'd':
case 'f':
case 'g':
case 'h':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z':
return 1;
default:
return 0;
}
}

输出如下:1 || ba}2 ||是等等

最佳答案

第一个错误在这一行:

for (c3 = 'a'; c3 <= 'z'; c3++);

由于该行末尾的分号,迭代体是“什么都不做”。它之后的代码块(从 {})只是被视为在此循环之后要做的事情。当您输入此代码块时,c3 将始终是 {,因为它是 z 之后的第一个字符(在大多数字符编码中)。 修复:删除分号。

第二个错误是条件的选择。条件 check_vowel(c3) == 0(你写的)不等于 check_consonant(c3) == 1(你想要的)。例如,{ 不是元音字母,但这并不意味着它是辅音字母。 解决方法:让您的条件变得积极。

关于c - 使用 for 循环打印特定的 "non-vowel, vowel, non-vowel"单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33040119/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com