Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2010, 21:58   #1
Trafford
 
Регистрация: 27.11.2010
Сообщений: 4
По умолчанию Одномерный массив

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


В одномерном целочисленном массиве (размер массива (не больше 20) и значения его элементов вводить с клавиатуры) вычислить сумму модулей элементов массива, расположенных после минимального по модулю элемента.

Программа:


#include <conio.h>
#include <stdio.h>
#include <math.h>
void main()
{
int a[20],n,number, i,min, s=0;

puts ("\n\t Enter number of elements");
scanf("%d",&n);
puts ("\n\t Enter elements");
for(i = 0; i < n; i++)

scanf("%4d",&a[i]);
puts ("\n\t Massive");
for(i = 0; i < n ; i++)
printf("%4d", a[i]);
number=0;
min=a[0];
for (i = 1; i < n; i++)
if (fabs(a[i]<min)
number = i min=a[i];
}
{for ( i = number+1; i < n; i++) s+=a[i];
printf("\n Sum of elements after minimal module is \n%4d",s);}
getch();
}



Программа2:

#include <conio.h>
#include <stdio.h>
#include <math.h>
void main()
{
double a,b,x,h,r,y,s,mod;
int n,k;
puts("Enter a,b,h,n");
scanf("%lf%lf%lf%d",&a,&b,&h,&n);
for(x=a;x<=b;x+=h)
{
r=s=1; y=(exp(x)+ exp(-x))/2;
for(k=1;k<=n;k++)
{
r= r*pow(x,2)/(2*k);
s+=r;
mod=fabs(y-s); }
printf("\n x=%8.2lf sum=%8.8lf y=%8.8lf mod=%8.8lf",x,s,y,mod);
}
puts("\n Press any key...");
getch();
}
Изображения
Тип файла: jpeg 1.jpeg (32.9 Кб, 81 просмотров)

Последний раз редактировалось Trafford; 29.11.2010 в 22:00. Причина: Неточное условие
Trafford вне форума Ответить с цитированием
Старый 30.11.2010, 15:13   #2
Freddi Krjuger
Пользователь
 
Регистрация: 20.08.2010
Сообщений: 37
По умолчанию

Код:
// gh.cpp : Defines the entry point for the console application.
//

#include"stdafx.h"
#include <conio.h>
#include <stdio.h>
#include <math.h>
void main()
{
 int a[20],n,number, i,min, s=0;
   puts ("\n\t Enter number of elements");
    scanf("%d",&n);
   puts ("\n\t Enter elements");
   
    for(i = 0; i < n; i++)
      scanf("%4d",&a[i]);
   puts ("\n\t Massive");
    for(i = 0; i < n ; i++)
       printf("%4d", a[i]);
 number=0;
 min=a[0];
 double elem=0;
  for (i = 1; i < n; i++)
 {
   elem=a[i];	
   if (fabs(elem)<min)
     {
       number = i;
       min=a[i];
     }//end if
 }//end for
  for ( i = number+1; i < n; i++) 
       s+=a[i];
   printf("\n Sum of elements after minimal module is \n%4d",s);
getch();
}
Работает,но кажется делает не то что надо,в задаче сказано "вычислить сумму модулей элементов массива" я это понимаю как сначало надо вычислить модуль а потом суммировать

Последний раз редактировалось Freddi Krjuger; 30.11.2010 в 15:17.
Freddi Krjuger вне форума Ответить с цитированием
Старый 04.12.2010, 00:19   #3
Trafford
 
Регистрация: 27.11.2010
Сообщений: 4
По умолчанию

Спасибо, Фредди!
Trafford вне форума Ответить с цитированием
Старый 05.12.2010, 13:32   #4
Trafford
 
Регистрация: 27.11.2010
Сообщений: 4
По умолчанию

Всё, работает. Вот конечный код! Может кому понадобится!

#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
int a[20], n, i, min,imin,s=0;
cout << "\t Input N (<=20) "<<endl;
cin >> n;
cout <<"\n\t Massiv A" << endl;
for(i = 0; i < n; i++)
{cout << "\t a[ " << i << " ]="<<endl;
cin >> a[i]; } //ввод и чтение элементов массива
min=fabs(a[0]),imin=0;
for(i=0; i<n;i++)
if(fabs(a[i])<min)
{
min=fabs(a[i]);
imin=i; } //нашли минимальный по модулю элемент
for (i=imin+1;i<n;i++)
s+=fabs(a[i]); //нашли искомую сумму
cout<< "sum after minimal module is"<<s<< endl;
system("pause");
getch();
}
Trafford вне форума Ответить с цитированием
Старый 05.12.2010, 13:34   #5
Trafford
 
Регистрация: 27.11.2010
Сообщений: 4
По умолчанию

Помогите, пожалуйста, со второй задачей


У меня проблемы с вычислением факториала. Y праильно находит, а вот факториал-нет (

#include <iostream.h>
#include <math.h>
#include <conio.h>

int main() //îñíîâíàÿ ôóíêöèÿ
{
double a,b,h,n,k,rez=0,x,f,s=0,z,c,fact=1, y,l;
cout<<"Enter needed elements...\n";
cout<<"a:"<<endl;
cin>>a;
cout<<"b:"<<endl;
cin>>b;
cout<<"h:"<<endl;
cin>>h;
cout<<"n:"<<endl;
cin>>n;
for(x=a; x<=b; x+=h)
{
for(k=1; k<=n; k++)
c=2*k;
for ( k=1; k<c; k++)
fact=fact*(2*k)*(2*k-1);
rez=pow(x,(2*k))/fact; //Ðàñ÷åò çíà÷åíèÿ ôóíêöèè
s+=rez; //Ïîäñ÷åò ñóììû ôóíêöèè S(x)
}
y = (exp(x)+exp(-x))/2; //Ðàñ÷åò çíà÷åíèÿ ôóíêöèè Y(x)
z=fabs(y-s); //Ðàñ÷åò âûðàæåíèÿ |Y(x)–S(x)|
cout<< "y(" <<x << ") = | "<< y << endl;
cout<< "s(" <<x << ") = | "<<fact<< endl;
cout<< "|y(" <<x << ")-s(" <<x << ")| = | "<< z <<endl;
cout<<"------------------------------------------"<<endl;//Âûâîä ðåçóëüòàòîâ ðàñ÷åòà
}
system("pause");
getch ();
return 0;
}
Trafford вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
Одномерный массив Марина_marina Паскаль, Turbo Pascal, PascalABC.NET 0 18.10.2009 20:57