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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2010, 17:58   #1
KimiRaikkonen
Пользователь
 
Аватар для KimiRaikkonen
 
Регистрация: 08.11.2009
Сообщений: 33
По умолчанию Пормогите в подпрограммах Си++

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


#include <stdio.h>
#include <math.h>
#include <conio.h>
void vvod(int X[],int n,char sim);
void vivod(int X[],int n,char sim);
sar(int X[],int n);
void main(void)
{
int A[100];
int B[100];
int C[100];
int h,l,m;
float a,b,c,x1,x2;
clrscr();
printf("Vvedite kolichestvo elementov massiva A\n");
scanf("%d",&h);
vvod(A,h,'A');
fflush(stdin);
clrscr();
printf("Vvedite kolichestvo elementov massiva B\n");
scanf("%d",&l);
vvod(B,l,'B');
fflush(stdin);
clrscr();
printf("Vvedite kolichestvo elementov massiva C\n");
scanf("%d",&m);
vvod(C,m,'C');
fflush(stdin);
clrscr();
vivod(A,h,'A');
vivod(B,l,'B');
vivod(C,m,'C');
a=sar(A,h);
b=sar(B,l);
c=sar(C,m);
if (b*b-4*a*c<0)
{
printf("Uravneniye kornej ne imeet");
}
else {
if (a!=0)
{
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("Korni uravneniya ravni:\n x1=%f\n x2=%f",x1,x2);
}
else {
x1=(-c)/b;
printf("Koren' uravneniya raven:\n x1=%f",x1);
}
}
}
/* Opisanie funkcii vvoda */
void vvod(int X[],int n,char sim)
{
int i;
for (i=0;i<n;i=i+1)
{
printf("Vvedite %d element massiva %c\n",i+1,sim);
scanf("%d",&X[i]);
}
}
/* Opisanie funkcii vivoda */
void vivod(int X[],int n,char sim)
{
int i;
printf("Massiv %c:\n",sim);
for(i=0;i<n;i=i+1)
{
printf("%d ",X[i]);
}
printf("\n");
}
/* Opisanie funkcii srednego arifmeticheskogo */
sar(int X[],int n)
{
float sum,sar;
int i,k,j;

for(i=0;i<n;i=i+1)
{
if(X[i]>0)
{
k=k+1;
if(k==2)
{
for(j=i+1;j<n;j=j+1)
{
if(X[i]<0)
{
sum=sum+X[i];
k=k+1;
}
} }
}
if (k>0)
{
sar=sum/k;
}
else sar=0;
}
return(sar);
}
Лишь утратив всё до конца, мы обретаем свободу....
KimiRaikkonen вне форума Ответить с цитированием
Старый 27.04.2010, 18:23   #2
osichev
Форумчанин
 
Регистрация: 18.05.2009
Сообщений: 180
По умолчанию

а что за задание?
Программист без пива, как спирт без пробки - выдохнется___________-
osichev вне форума Ответить с цитированием
Старый 27.04.2010, 18:31   #3
osichev
Форумчанин
 
Регистрация: 18.05.2009
Сообщений: 180
По умолчанию

аа,всё,понял!
Программист без пива, как спирт без пробки - выдохнется___________-
osichev вне форума Ответить с цитированием
Старый 27.04.2010, 18:31   #4
KimiRaikkonen
Пользователь
 
Аватар для KimiRaikkonen
 
Регистрация: 08.11.2009
Сообщений: 33
По умолчанию

Решить квадратное уравнение a*x*x+b*x+c=0 ,где a,b,c-среднее арифметическое отрицательных элементов, стоящих после второго положительного в массивах A,B,C соответственно.
Лишь утратив всё до конца, мы обретаем свободу....
KimiRaikkonen вне форума Ответить с цитированием
Старый 27.04.2010, 19:01   #5
osichev
Форумчанин
 
Регистрация: 18.05.2009
Сообщений: 180
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h> 
#include <math.h>
#include <time.h> 
#define max 100
void gen(int k,float x[max]);
float sred(int k,float x[max]);
void main (){
float mas[max],mas1[max],mas2[max],A,B,C; 
float xi,x,x1,x2,d;
int n;
do {
printf ("Введите кол-во элементов массива 1  (n<=100): ");
scanf ("%d",&n);  }
while (n>max);
gen (n,mas);
A= sred(n,mas);
//printf ("\nСреднее арифметическое массива рано %.3f",sred(n,mas)); 
do {
printf ("\nВведите кол-во элементов массива 2  (n<=100): ");
scanf ("%d",&n);  }
while (n>max);
gen (n,mas1);  
B=sred(n,mas);
//printf ("\nСреднее арифметическое массива рано %.3f",sred(n,mas));
do {
printf ("\nВведите кол-во элементов массива 3  (n<=100): ");
scanf ("%d",&n);  }
while (n>max);
gen (n,mas2);
C= sred(n,mas);
//printf ("\nСреднее арифметическое массива рано %.3f",sred(n,mas));  
//printf("A=%f \n B=%f \n C=%f",A,B,C);
if(A==0)
 if(B==0)
  if(C==0) printf("X-любое число");
  else printf("нет решения");
  else{
  x1=-C/B;
  printf("\n X= %f",x1);
  }
  else{
  d=B*B-4*A*C;
  if(d>0) {
  x1=(-B-sqrt(d))/(2*A);
  x2=(-B+sqrt(d))/(2*A);
  printf("\n x1 = %f \n x2=%f",x1,x2);
  }
  else
   if(d==0) {
   x1=-B/(2*A);
   printf("\nx1 = x2 = %f",x1);
   }
   else{
   x=-B/(2*A);
   xi=sqrt(-d)/1/A;
   printf("\n x1 = %f + %f \n x2 = ( %f ) - ( %f )  ",x,xi,x,xi);
   }
  }  

}
void gen(int k,float x[max]){
int i;
printf("Введите значение %d элементов массива: \n", k);
for (i=0;i<k;i++) {
printf("x[%d]= ", i);
scanf("%f", &x[i]);
} 
}
float sred(int k,float x[max]){
int i;
float sum=0.0;
for (i=1;i<k;i++) 
if(x[i]<0){
 sum+=x[i];
  }       
return sum/k;
}
Программист без пива, как спирт без пробки - выдохнется___________-
osichev вне форума Ответить с цитированием
Старый 27.04.2010, 19:02   #6
osichev
Форумчанин
 
Регистрация: 18.05.2009
Сообщений: 180
По умолчанию

я по-своему решил!
мож разберёшься
А,да,я не сделал после второго положительного(условие у тебя).
Программист без пива, как спирт без пробки - выдохнется___________-
osichev вне форума Ответить с цитированием
Старый 27.04.2010, 19:13   #7
KimiRaikkonen
Пользователь
 
Аватар для KimiRaikkonen
 
Регистрация: 08.11.2009
Сообщений: 33
По умолчанию

Пасибо огромное))))
Лишь утратив всё до конца, мы обретаем свободу....
KimiRaikkonen вне форума Ответить с цитированием
Старый 27.04.2010, 19:21   #8
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Цитата:
Лишь утратив всё до конца, мы обретаем свободу....
многоточие рулит...
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
реализация линейных структур данных в подпрограммах ArniLand Общие вопросы C/C++ 0 31.01.2010 01:20