Member 12887589 Ответов: 2

Имея проблему в вычислительной области круга, а[20]. Пожалуйста помочь


#include<stdio.h>

int main()
{
	int i,r[i];
	double a[20];

	for (i=0;i<20;i++)
	{		
		r[i]=i+1;
		a[20]=area(r);
		printf("%.3e",a[20]);	
	}

	return 0;
}

double area(int r[int i])
	{
		double pi,area;
		
		pi=3.142;
		area=pi*pow(r[i],2);
		return area;
	}	


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

#include<stdio.h>

int main()
{
	int i,r[i];
	double a[20];

	for (i=0;i<20;i++)
	{		
		r[i]=i+1;
		a[20]=area(r);
		printf("%.3e",a[20]);	
	}

	return 0;
}

double area(int r[int i])
	{
		double pi,area;
		
		pi=3.142;
		area=pi*pow(r[i],2);
		return area;
	}	

NotPolitcallyCorrect

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

2 Ответов

Рейтинг:
7

Patrice T

Просто читая, я вижу здесь 4 ошибки.
- Вам нужно узнать о прототип функции
- Массив не объявляется таким образом

int i,r[i];

- Вызов функции и параметр функции не совпадают
a[20]=area(r);
...
double area(int r[int i])


Решение 1 уже дает вам исправления. Так 2 советы узнать отладчик и учиться правильно на C++.
-----
Используйте отладчик, чтобы увидеть, что делает ваш код. Он позволяет выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.
-----
Вот ссылки на справочники книг по С и с++ авторов этих языков. Обратите внимание, что C является предком C++, поэтому знание C всегда полезно с C++.
Язык программирования Си - Википедия, свободная энциклопедия[^]
https://hassanolity.files.wordpress.com/2013/11/the_c_programming_language_2.pdf[^]
http://www.ime.usp.br/~ПФ/Керниган-Ритчи/с-Программирование-электронные книги.формат PDF[^]

Язык Программирования C++ [^]


Рейтинг:
17

CPallini

Вы должны действительно научиться массивы используются в C алгоритмический язык. Смотрите, например Массивы в C[^].

Более того вы должны овладеть функции, видеть C Функции[^].

Попробуй

#include <stdio.h>
#include <math.h>

double area(int r);

int main()
{
  int i, r;
  double a[20];

  for (i = 0; i < 20; i++)
  {
    r = i + 1;
    a[i] = area(r);
    printf("%.3e\n",a[i]);
  }

  return 0;
}

double area(int r)
{
    double pi, result;

    pi = 3.142;
    result = pi * pow (r, 2);
    return result;
}