#include <stdio.h>
int main(void) {
double numbersEntered, sum = 0;
do
{
printf("Enter a number: ");
scanf("%lf", &numbersEntered);
sum += numbersEntered;
}
while (/* ??? */);
printf("Sum = %.2lf", sum);
return 0;
}
我应该在while
语句中做什么来在用户输入4
整数后停止循环?
答案 0 :(得分:2)
你需要介绍一个柜台:
double numbersEntered, sum = 0;
int count = 0;
do
{
printf("Enter a number: ");
scanf("%lf", &numbersEntered);
sum += numbersEntered;
count++;
} while (count < 4);
确保你增加它,否则你的循环永远不会结束。
将4更改为常量(甚至可配置)变量将使程序更加灵活,但实际上是否需要执行此操作取决于应用程序需要执行的操作。
答案 1 :(得分:2)
我可以建议以下解决方案
#include <stdio.h>
int main( void )
{
const int N = 4;
double sum = 0.0;
for ( int i = 0, success = 1; success && i < N; i++ )
{
double numberEntered;
printf( "Enter a number: " );
if ( success = ( scanf( "%lf", &numberEntered ) == 1 ) ) sum += numberEntered;
}
printf( "\nSum = %.2lf", sum );
return 0;
}
程序输出看起来像
Enter a number: 1.1
Enter a number: 2.2
Enter a number: 3.3
Enter a number: 4.4
Sum = 11.00
或者程序看起来像
#include <stdio.h>
int main( void )
{
const int N = 4;
double sum = 0.0;
printf( "Enter %d numbers\n\n", N );
for ( int i = 0, success = 1; success && i < N; i++ )
{
double numberEntered;
printf( "Enter number %d: ", i + 1 );
if ( success = ( scanf( "%lf", &numberEntered ) == 1 ) ) sum += numberEntered;
}
printf( "\nSum = %.2lf", sum );
return 0;
}
在这种情况下,其输出可能看起来像
Enter 4 numbers
Enter number 1: 1.1
Enter number 2: 2.2
Enter number 3: 3.3
Enter number 4: 4.4
Sum = 11.00
您可以要求用户输入输入值的数量,而不是使用等于4的常数N.
答案 2 :(得分:0)
嘿,您需要将要扫描的整数数作为输入。 然后不断穿越。 #include
int main() {
double numbersEntered, sum = 0;
int numbersToBeEntered = 0;
scanf("%d",&numbersToBeEntered);
do
{
printf("Enter a number: ");
scanf("%lf", &numbersEntered);
sum += numbersEntered;
}while (--numbersToBeEntered);
printf("Sum = %.2lf", sum);
return 0;
}
答案 3 :(得分:0)
当您输入指定的双倍数时,使用计数器结束循环。
此外,请务必检查scanf
返回值,否则,如果您输入的内容不是double
,则最终会添加numbersEntered
的旧值,这大部分都不是您想要的。
#include <stdio.h>
int main(void) {
double numbersEntered, sum = 0;
int cnt = 0;
int ret;
do
{
printf("Enter a number: ");
ret = scanf("%lf", &numbersEntered);
if (ret != 1) continue;
sum += numbersEntered;
cnt++;
} while (cnt < 4);
printf("Sum = %.2lf", sum);
return 0;
}