Ошибкa в статическом массиве

252
30 октября 2017, 23:37
#include <stdio.h>
#include <math.h>
#define MAX_DATA 11
using namespace std;
int main() {
    double a[MAX_DATA] = {0.3, 0.7, 0.9, 1.3, 1.7, 1.9, 2.3, 2.7, 2.9, 3.3, 3.7};
    double sum1 = 0, sum2 = 0, temp, s3;
    for (int i = 0; i < 4; i++) {
        temp = sin(fabs(1 - log(a[i])));
        sum1 += temp;
    }
    for (int i = 0; i < 10; i++) {
        temp = sin(18 * a[i] * a[i] * a[i]) * sin(18 * a[i] * a[i] * a[i]);
        sum2 += temp;
    }
    if (sum2 == 0) {
        printf("na nol delit nelzya");
    } else {
        s3 = sum1 / sum2;
    }
    printf("S3= %f, S3");
    return 0;
}
Answer 1

Метод printf принимает первым параметром строку, а затем несколько значений, которые будут подставлены в эту строку. В вашем коде в printf передаётся только строка, а значение для модификатора %f не передаётся. Так произошло из-за опечатки, чтобы её исправить надо заменить

printf("S3= %f, S3");

на

printf("S3= %f", S3);

Будет выдавать:

S3= 0.846996

READ ALSO
Как взаимно заменить числа в файле

Как взаимно заменить числа в файле

Всем доброго времени суток,

316
Существует ли проверка интерфейса шаблона C++?

Существует ли проверка интерфейса шаблона C++?

В книге Бьярне Страуструпа "ПрограммированиеПринципы и практика с использованием C++, 2-е издание

238
Классификация итераторов

Классификация итераторов

Как в коде применяются классы классификации итераторов:

242
Как обнулить значение в массиве с++ [требует правки]

Как обнулить значение в массиве с++ [требует правки]

Как обнулить значение элемента массива A, если в массиве B существует такое значение, которое при сложении с текущим элементом массива A дает...

436