@Amigo2019

Почему в вывое один и тот же результат?Икак это исправить?

Добрый день!
Нужна помощь..
В выводе один и тот же результат
#include <iostream>
#include <conio.h>
#include <locale.h>
using namespace std;

int main() {
	const int n=7;
	float *z=new float[800];
	float *x = new float[n]{ -3.2, -2.1, 0.4, 0.7, 2, 2.5, 2.77 };
	float *y =new float[n]{ 10, -2, 0, -7, 7, 0, 0 };
	int i, j, k;
	int ni =(int) (x[n - 1] - x[0]) / 0.1;
	for (k = 0; k < ni; k++)
	{
		float z1 = k*0.1;
		float S = 0;
		for (i = 0; i < n; i++) {
			double P = 1;
			for (j = 0; j < n; j++) {
				if (i != j) {
					P = P * (z1 - x[j]) / (x[i] - x[j]);
				}
			}
			S = S + y[i] * P;
		}
		z[800] = S;
		cout << z[k] << endl;
	
	}
	system("pause");
}
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
miron102003
@miron102003
Просто люблю программирование.
z[800] = S;
cout << z[k] << endl;

Вы заносите переменную S в 800-тую ячейку массива, а выводите с 0 по ni. Для решения проблемы вместо 800 следует написать k.
z[k] = S;
cout << z[k] << endl;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы