Reputation: 47
#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;
}
What should I do in the while
statement to stop the loop after the user enters 4
integers?
Upvotes: 0
Views: 541
Reputation: 137108
You need to introduce a counter:
double numbersEntered, sum = 0;
int count = 0;
do
{
printf("Enter a number: ");
scanf("%lf", &numbersEntered);
sum += numbersEntered;
count++;
} while (count < 4);
Make sure you increment it otherwise your loop will never end.
Changing the 4 to a constant (or even a configurable) variable will make the program more flexible, but whether you actually need to do that depends on what your application needs to do.
Upvotes: 2
Reputation: 310930
I can suggest the following solution
#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;
}
The program output can look like
Enter a number: 1.1
Enter a number: 2.2
Enter a number: 3.3
Enter a number: 4.4
Sum = 11.00
Or the program can look like
#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;
}
In this case its output might look like
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
Instead of using the constant N equal to 4 you can ask the user to enter the number of entered values.
Upvotes: 2
Reputation: 13786
Use a counter to end the loop when the specified number of double you have entered.
Also, remember to check scanf
return value, otherwise, if you input something not a double
, you will end up adding the old value of numbersEntered
, which mostly is not what you want.
#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;
}
Upvotes: 0
Reputation: 1154
Hey you need to take the number of integers to be scanned as a input. and then traverse continously. #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;
}
Upvotes: 0