я чТО тО нЕ сОВСЕМ в кЛАССЫ вЪЕХАЛ.
Дан вектор, содержащий не более 29 элементов. Построить новый, элементы которого - величины, обратные заданным (нулевые элементы не заменять). Подсчитать количество не изменившихся элементов. Найти максимальный по абсолютной величине отрицательный элемент и общее количество отрицательных элементов. Формат числа ?ццц. Вид распечатки результатов разработать самостоятельно.
Ну вот я и написал её а она вываливает ошибоки подскажите плиз что не так а то я что то не совсем в классы въехал.
#include<conio.h>
#include<stdio.h>
#include<math.h>
void main()
{
int n;
int A[29];
int i;
printf("n=");
scanf("%d",&n);
if(n>29) n=29;
for (i=0; i<n; i++)
{
printf("A[%d]=",i);
scanf("%d",&y);
}
}
class Matrix
{
int n;
int A[29];
int i;
public:
void Res_mas(int k,int *y);
};
void Matrix::Res_mas(int k, int *y)
{
float B[29],max;
//int i;
int kol1=0;
int kol2=0;
max=0;
for (i=0;i<n;i++)
{
if (y==0)
{
B=y;
kol1++;
}
else B=1/float(y);
if (B<0)
{
kol2++;
if (abs(B)>max) max=B;
}
printf("B[%d]=%5.2f\n",i,B);
}
printf("kol1=%3d\n",kol1);
printf("kol2=%3d\n",kol2);
printf("max=%5.2f\n",max);
}
И что такое scanf("%d",&y);, я так понимаю тут должно быть scanf("%d",&A);
#include<conio.h>
#include<stdio.h>
#include<math.h>
void main()
{
int n;
int A[29];
int i;
printf("n=");
scanf("%d",&n);
if(n>29) n=29;
for (i=0; i<n; i++)
{
printf("A[%d]=",i);
scanf("%d",&A);
}
}
class Matrix
{
int n;
int A[29];
int i;
public:
void Res_mas(int k,int *y);
};
void Matrix::Res_mas(int k, int *y)
{
float B[29],max;
//int i;
int kol1=0;
int kol2=0;
max=0;
for (i=0;i<n;i++)
{
if (y==0)
{
B=y;
kol1++;
}
else B=1/float(y);
if (B<0)
{
kol2++;
if (abs(B)>max) max=B;
}
printf("B[%d]=%5.2f\n",i,B);
}
printf("kol1=%3d\n",kol1);
printf("kol2=%3d\n",kol2);
printf("max=%5.2f\n",max);
}
Цитата:
Originally posted by WD-40
О огромное тебе спасибо Abell2000 только вот не могли бы вы мне всё же объяснить почему после ввода параметров прога не выполняет каких либо действий то есть она не печатает результат почему.
#include<conio.h>
#include<stdio.h>
#include<math.h>
void main()
{
int n;
int A[29];
int i;
printf("n=");
scanf("%d",&n);
if(n>29) n=29;
for (i=0; i<n; i++)
{
printf("A[%d]=",i);
scanf("%d",&A);
}
}
class Matrix
{
int n;
int A[29];
int i;
public:
void Res_mas(int k,int *y);
};
void Matrix::Res_mas(int k, int *y)
{
float B[29],max;
//int i;
int kol1=0;
int kol2=0;
max=0;
for (i=0;i<n;i++)
{
if (y==0)
{
B=y;
kol1++;
}
else B=1/float(y);
if (B<0)
{
kol2++;
if (abs(B)>max) max=B;
}
printf("B[%d]=%5.2f\n",i,B);
}
printf("kol1=%3d\n",kol1);
printf("kol2=%3d\n",kol2);
printf("max=%5.2f\n",max);
}
О огромное тебе спасибо Abell2000 только вот не могли бы вы мне всё же объяснить почему после ввода параметров прога не выполняет каких либо действий то есть она не печатает результат почему.
#include<conio.h>
#include<stdio.h>
#include<math.h>
void main()
{
int n;
int A[29];
int i;
printf("n=");
scanf("%d",&n);
if(n>29) n=29;
for (i=0; i<n; i++)
{
printf("A[%d]=",i);
scanf("%d",&A);
}
}
class Matrix
{
int n;
int A[29];
int i;
public:
void Res_mas(int k,int *y);
};
void Matrix::Res_mas(int k, int *y)
{
float B[29],max;
//int i;
int kol1=0;
int kol2=0;
max=0;
for (i=0;i<n;i++)
{
if (y==0)
{
B=y;
kol1++;
}
else B=1/float(y);
if (B<0)
{
kol2++;
if (abs(B)>max) max=B;
}
printf("B[%d]=%5.2f\n",i,B);
}
printf("kol1=%3d\n",kol1);
printf("kol2=%3d\n",kol2);
printf("max=%5.2f\n",max);
}
а где создание объекта класса Matrix?
Цитата:
Originally posted by WD-40
О огромное тебе спасибо Abell2000 только вот не могли бы вы мне всё же объяснить почему после ввода параметров прога не выполняет каких либо действий то есть она не печатает результат почему.
...
О огромное тебе спасибо Abell2000 только вот не могли бы вы мне всё же объяснить почему после ввода параметров прога не выполняет каких либо действий то есть она не печатает результат почему.
...
Хе. Конечно не будет. У тебя для печати целый класс создан, но только ты ж его в своей проге нигде не используешь. Нужно сделать так:
Matrix *matrix=new Matrix;
matrix->Res_mas(n,A);
только описание класса должно быть до void main(), но у тебя все равно работать не будет, поскольку в void Matrix::Res_mas(int k, int *y) вместо n должно быть k или n=k.
#include<conio.h>
#include<stdio.h>
#include<math.h>
class Matrix
{
int n;
int A[29];
int i;
public:
void Res_mas(int k,int *y);
};
void main()
{
int n;
int A[29];
int i;
printf("n=");
scanf("%d",&n);
if(n>29) n=29;
for (i=0; i<n; i++)
{
printf("A[%d]=",i);
scanf("%d",&A);
}
}
void Matrix::Res_mas(int k, int *y)
{
Matrix *matrix=new Matrix;
matrix->Res_mas(n,A);
n=k;
float B[29],max;
//int i;
int kol1=0;
int kol2=0;
max=0;
for (i=0;i<n;i++)
{
if (y==0)
{
B=y;
kol1++;
}
else B=1/float(y);
if (B<0)
{
kol2++;
if (abs(B)>max) max=B;
}
printf("B[%d]=%5.2f\n",i,B);
}
printf("kol1=%3d\n",kol1);
printf("kol2=%3d\n",kol2);
printf("max=%5.2f\n",max);
}
matrix->Res_mas(n,A);
В main это надо писать!!!
Испилняется то main, а не чт-то ещё, так что пока ты там к этим функциям и классам не обратишься, ничего у тебя не выйдет!!!