@igoodmood

Где ошибка в коде на С++?

Суть программы : пользователь вводит размерность одного массива и заполняет его элементами. Другой массив заполняется программой, предварительно каждый элемент рассчитывается по заданной формуле, а потом заносится в массив. Но при обработке второго массива возникает ошибка (смотри скрин).
443336f9655a402cbc51098246f7030b.PNG
#include "stdafx.h"
#define MAX 50
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	setlocale(LC_ALL, "Russian");
	int k,n,i;
	double a[MAX],b[MAX];
	cout<<"Введите розмерность массива n=";
	cin>>n;
	for (i=0;i<n;i++){cin>>a[i];}
	k=1;
	while(k<=n){b[i]=sqrt(fabs(atan(k/2-1.5)));k++;}	
	for ( i = 0; i < n; i++ ){cout<<b[i]<<" ";}
	system("pause");
	return 0;
}
  • Вопрос задан
  • 491 просмотр
Пригласить эксперта
Ответы на вопрос 2
@MiiNiPaa
b[i]=... А чему равняется i здесь?
Ответ написан
Комментировать
zagayevskiy
@zagayevskiy
Android developer at Yandex
Предположу, что в формуле:
sqrt(fabs(atan(k/2-1.5))) имелось ввиду не k, а a[k].
Но тогда цикл надо изменить - сейчас он по k от 1 до n, а должен быть от 0 до n - 1.
И ещё всё это присваивается b[i], хотя i в цикле не меняется. Наверное, нужно b[k].
P.S. форматирование просто ужасно, лучше бы вам его поправить.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы