C++ 用户在c++;
我想写一个程序,从用户那里获取输入并计算三角形数。还应该有一个选项来询问用户是否希望进行另一次输入或退出,这需要使用while或do…while来完成。我已经编写了以下代码,但没有执行预期的操作:C++ 用户在c++;,c++,visual-studio-2013,C++,Visual Studio 2013,我想写一个程序,从用户那里获取输入并计算三角形数。还应该有一个选项来询问用户是否希望进行另一次输入或退出,这需要使用while或do…while来完成。我已经编写了以下代码,但没有执行预期的操作: #include <stdio.h> int main(void) { int n, number, triangularNumber; char s = 'Y'; while (s == 'Y') { printf("What triangular
#include <stdio.h>
int main(void)
{
int n, number, triangularNumber;
char s = 'Y';
while (s == 'Y') {
printf("What triangular number do you want? ");
scanf("%i", &number);
triangularNumber = 0;
for (n = 1; n <= number; ++n)
triangularNumber += n;
printf("Triangular number %i is %i\n\n", number, triangularNumber);
printf("Do you want to continue?\n");
scanf("%c", &s);
}
return 0;
}
#包括
内部主(空)
{
int n,数字,三角形数;
chars='Y';
而(s=='Y'){
printf(“您想要什么三角形数字?”);
scanf(“%i”和编号);
三角形编号=0;
对于(n=1;n两个问题:首先,小写字母和大写字母之间有区别,'y'!='y'
第二个问题,您在这里看到的是,第一个scanf
在读取数字的地方,它将换行保留在输入缓冲区中。然后第二个scanf
调用读取该换行并将其写入变量s
第一个问题可以通过确保变量s
的内容是大写字母来轻松解决,方法是:
第二个问题也可以通过在获取字符时要求scanf
读取并丢弃前导空格来轻松解决,只需在格式代码前添加一个空格即可:
scanf(" %c", &s);
// ^
// |
// Note space here
两个问题:首先,小写字母和大写字母之间有区别,'y'!='y'
第二个问题,您在这里看到的是,第一个scanf
在读取数字的地方,它将换行保留在输入缓冲区中。然后第二个scanf
调用读取该换行并将其写入变量s
第一个问题可以通过确保变量s
的内容是大写字母来轻松解决,方法是:
第二个问题也可以通过在获取字符时要求scanf
读取并丢弃前导空格来轻松解决,只需在格式代码前添加一个空格即可:
scanf(" %c", &s);
// ^
// |
// Note space here
两个问题:首先,小写字母和大写字母之间有区别,'y'!='y'
第二个问题,您在这里看到的是,第一个scanf
在读取数字的地方,它将换行保留在输入缓冲区中。然后第二个scanf
调用读取该换行并将其写入变量s
第一个问题可以通过确保变量s
的内容是大写字母来轻松解决,方法是:
第二个问题也可以通过在获取字符时要求scanf
读取并丢弃前导空格来轻松解决,只需在格式代码前添加一个空格即可:
scanf(" %c", &s);
// ^
// |
// Note space here
两个问题:首先,小写字母和大写字母之间有区别,'y'!='y'
第二个问题,您在这里看到的是,第一个scanf
在读取数字的地方,它将换行保留在输入缓冲区中。然后第二个scanf
调用读取该换行并将其写入变量s
第一个问题可以通过确保变量s
的内容是大写字母来轻松解决,方法是:
第二个问题也可以通过在获取字符时要求scanf
读取并丢弃前导空格来轻松解决,只需在格式代码前添加一个空格即可:
scanf(" %c", &s);
// ^
// |
// Note space here
scanf(“%i”、&number);
生成一个换行符,供您的scanf(“%c”、&s);
重写为scanf(“%c”、&s)
(在%c
之前包含一个空格)以忽略输入之前的所有空白。scanf(“%i”、&number);
生成一个新行,该新行由scanf(“%c”、&s);
重写为scanf(“%c”、&s)
(在%c
之前包含一个空格)以忽略输入之前的所有空白。scanf(“%i”、&number);
生成一个新行,该新行由scanf(“%c”、&s);
重写为scanf(“%c”、&s)
(在%c
之前包含一个空格)以忽略输入之前的所有空白。scanf(“%i”、&number);
生成一个新行,该新行由scanf(“%c”、&s);
重写为scanf(“%c”和&s)
(在%c
之前包含空格)忽略输入前的所有空白。当用户按y
时,它是否以小写形式出现?这可能就是它在1个循环后爆炸的原因,如果用户按y
时,它是否以小写形式出现,您可以很容易地调试它。这可能是它在1个循环后爆炸的原因,您可以调试这个qu如果用户按y
时它是否以小写形式出现?这可能就是它在1次循环后爆炸的原因,如果用户按y
时它是否以小写形式出现,您可以很容易地调试它。这可能是它在1次循环后爆炸的原因,如果是这样,您可以很容易地调试它