Member 13272723 Ответов: 3

Напишите программу на языке Си, чтобы найти сумму ряда


Серия выглядит так, как показано на рисунке
1+ (1/2)^2 + (1/3)^3 +...

Я создал код,но, к сожалению, он продолжает показывать 1.000000 или 2.000000 в качестве ответа.Кто-нибудь может мне помочь, пожалуйста??

Что я уже пробовал:

#include <stdio.h>
#include <conio.h>
#include <math.h>
void main()
{
    int i,n;
    float sum=1.0,x;
    printf("Enter limit");
    scanf("%d",&n);
    for(i=2;i<=n;i++)
    {
        x=1/i;
        sum=sum+pow(x,i);
    }
    printf("The sum is %f",sum);
    getch();
}

3 Ответов

Рейтинг:
23

OriginalGriff

Простой: i является целым числом. Таким образом, для любого значения больше единицы, 1/i равно нулю, потому что целые числа вообще не имеют фракционной части, поэтому все дробные значения отбрасываются, оставляя ноль для всех результатов более 1 и 1 для 1/1

Изменения в декларации я плавать или бросит его:

x = 1.0 / (float)i;


Рейтинг:
19

KarstenK

Ваш вывод отформатирован как float.

Читайте и изучайте е синтаксис.

Изменение вашего кода на должно решить эту проблему:

printf("The sum is %d",(int) sum);


Вам лучше использовать больший тип данных double
double sum = 0;


Рейтинг:
1

Patrice T

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.