所以我一直在做我的作業,但我不知道如何在我的 do..while 回圈中放置 if...else 陳述句,因為我想運行它不回圈的程式。輸出是這樣的。
[這是我得到的輸出][1]
#include <stdio.h>
#include <ctype.h>
int main(void){
char alphabet;
char confirm;
int lowercase_vowel, uppercase_vowel;
int a =1;
do{
printf("Enter an alphabet: ");
scanf("%c", &alphabet);
// evaluates to 1 if variable c is a lowercase vowel
lowercase_vowel = (alphabet == 'a' || alphabet == 'e' || alphabet == 'i' || alphabet == 'o' || alphabet == 'u');
// evaluates to 1 if variable c is a uppercase vowel
uppercase_vowel = (alphabet == 'A' || alphabet == 'E' || alphabet == 'I' || alphabet == 'O' || alphabet == 'U');
if(!isalpha(alphabet))
{
printf("Error! Non-alphabetic character.\n");
}
else if(lowercase_vowel || uppercase_vowel)
{
printf("%c is a vowel.\n", alphabet);
}
else
{
printf("%c is a consonant.\n", alphabet);
}
printf("\nif u want to proceed enter 1, if not enter 0\n");
scanf("%d", &a);
}while( a == 1);
}
``
[1]: https://i.stack.imgur.com/oRK1G.png
uj5u.com熱心網友回復:
看起來您的 while 條件正在將值 1 分配給 a。
嘗試:
while( a == 1);
uj5u.com熱心網友回復:
do
{
// code
}while (a = 1);
這將創建一個無限回圈,因為它將分配1給a,并且因為a現在是一個非零值,條件是true,它將再次回圈:
也許你想要的是:
do
{
// code
}while (a == 1); // comparison, not assignment
還:
scanf("%d", a);
應該:
scanf("%d", &a);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/357595.html
上一篇:為什么這里都跳過了“if”回圈?
