деление в то время как цикл

0

Я хочу использовать while цикл, чтобы разделить n чисел и распечатать фактор. Например, если пользователь ввел n = 3, программа запросит 3 номера. Скажем, пользователь вводил 2, 2 и 3. Затем программа выполняет следующую операцию: 2/2/3, а затем печатает ответ (т.е. 0.3333). У меня есть программа, которая использует while цикл сложения, деления и умножения отлично, но в делении, он делит 1 все числа введены (1/2/2/3). Как это исправить? Вот код:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

void main(void)
{
int n, k=0;
float total=1, number;
printf("\nEnter the number of elements you want to divide:");
scanf("%d",&n);
printf("Please enter %d numbers one by one: \n",n);
while(k<n)
{ 
    scanf("%f",&number);
    total=number/number;
    k=k+1;
}
printf("Quotient of %d numbers = %f \n",n,total);
_getch();
}
  • 0
    эта строка: float total = 1, должно быть float total = 1.0f; во-первых, потому что 1 не является числом с плавающей точкой, а 1.0 будет по умолчанию удвоено.
  • 0
    при использовании scanf () всегда проверяйте код возврата (в этом случае должен быть 1), чтобы убедиться, что параметры действительно были прочитаны. Вызов функции scanf () после первого должен иметь '' в качестве первого символа параметра формата, чтобы пропустить пробел (например, \ n).
Показать ещё 1 комментарий
Теги:
while-loop
division

2 ответа

4

+ Изменить

total=number/number;

в

if (k==0) 
    total = number;
else 
    total=total/number;
  • 0
    Это работает сейчас. Спасибо!
0

Начните с k=1 затем прямо перед циклом while

scanf('%f', &total);

Вы можете обернуть эту строку в if (n!=0). Таким образом, там нет, if выражение в петле для очень маргинального, крохотного прироста производительности!

Затем просто измените

total=number/number;

в

total=total/number;

и вы должны быть готовы к работе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню