Работа вам нужна срочно. Не волнуйтесь, уложимся!
Заполните, пожалуйста, данные для автора:
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
В каждой строке массива строк удалить введённый символ.
int main() { const n=5;
/* Объявляем статический массив указателей фиксированной размерности n, где n – константа.*/
char *S[n]; char C,*p, t[40]; cout<<"Symbol"; C=getch();
unsigned K=0; cout << endl<
for(int i=0;i
{ gets(t);
/* Для каждой строки динамически выделяем память, размер которой равен длине строки */
S[i]=new char [strlen(t)];
strcpy( S[i],t); // Введённую строку копируем в i–ю строку массива S
}
for(int i=0;i
{ p=S[i]; // В p засылаем адрес строки S[i]
do
{
p=strchr(p,C);
if (!p) /* это тоже самое, что if (p == NULL), т.е. если не нашли символ C, то заканчиваем анализ строки */
break;
K++;
strcpy(p,p+1); /* Удаляем найденный символ, т. е. всю строку сдвигаем на один символ влево */
}
while(1);
}
for(int i=0;i
cout <<"\n Number"<< K<<" ";
getch(); return 0; }
Передача матрицы в функцию с помощью указателей. Для вывода использовать стандартную функцию printf.
void MyFun1 (int **X, int , int ); // или void MyFun1 (int *X[],int , int );
void MyFun2 (int *X[],int , int ); //или void MyFun2 (int **X,int , int );
void MyPrint (int **X, int , int, int, char* );
int main()
{
int ** A; int N=3, M=4;
A=new int *[N];
for (int i=0; i
MyFun1(A,N,M);
MyPrint(A,N,M,5,"\n The first test\n");
//Удаляем матрицу
for (int i=0;i
delete[]A;
const Nconst=8; int M2=6;
int *B[Nconst];
for (int i=0; i
B[i]=new int [M2];
MyFun2(B,Nconst,M2);
MyPrint(B,Nconst,M2,3,"\n \nThe second test\n");
//Удаляем матрицу B
for (int i=0;i
delete[]B[i];
getch(); return 0;
}
void MyFun1 (int **X, int n, int m)
// или void MyFun1 (int *X[], int n, int m)
{
for (int i=0; i
for (int j=0;j
X[i][j]=(i+1)*(j+1);
// Перестановка 0-й и (n-1)-й строк
int* t;
t=X[0]; X[0]=X[n-1]; X[n-1]=t;
}
void MyFun2 (int *X[], int n, int m)
// или void MyFun2 (int **X, int n, int m)
{
for (int i=0; i
for (int j=0;j
if (i%2) X[i][j]=(i+1)-(j+1);
else X[i][j]=(i+1)+(j+1);
}
void MyPrint (int **X, int n , int m, int L, char* t )
{
char AnyFormat[10],
StrL[3];
strcpy(AnyFormat, "%");
strcat(AnyFormat,itoa(L,StrL,10));
strcat(AnyFormat,"d");
puts(t);
for (int i=0; i
{
for (int j=0;j
printf(AnyFormat,X[i][j]);
cout<<endl;
}
}
Составить класс для работы с целочисленной матрицей, включив в него матрицу, конкретные текущие размерности и следующие методы: конструктор для ввода и проверки текущих размерностей матрицы; ввод матрицы; вывод матрицы; поиск наибольшего и наименьшего значений матрицы, номера одной строки, где находится максимальный и номера одной строки, где находится минимальный элементы всей матрицы; цветной вывод матрицы, в результате которого все элементы найденных в предыдущей функции строк при выводе выделяются другими цветами. В функции main ввести размерности матрицы, создать объект и проверить составленные методы.
const n1max=10, n2max=10;
class ClMatr
{ int a[n1max][n2max], n1, n2;
public:
ClMatr(int size1=5, int size2=3)
{ if (size1>0 && size1
n1=size1; else n1=5;
if (size2>0 && size2
n2=size2; else n2=3;
}
void MyInp();
void MyOut();
void MaxMin(int *, int *, int *, int *);
void MyColorOut(unsigned, unsigned,unsigned, unsigned, unsigned);
};
void ClMatr::MyInp()
{ int x, y=1;
for (int i=0; i
{ y++; x=-14;
for (int j=0; j
{ x+=16; gotoxy(x,y);
cout<<"a["<
scanf("%d", a[i]+j);
}
}
};
void ClMatr::MyOut()
{ int x, y=wherey()+1; int *p1, *p2 ;
for (p1=a[0]; p1<=a[n1-1]; p1+=n2max, y++)
for (x=1, p2=p1; p2
{
gotoxy(x,y);
printf("%5d", *p2);
}
cout<
}
void ClMatr::MyColorOut(unsigned i1, unsigned i2,
unsigned col1, unsigned col2, unsigned col3)
{ int x,i=0, y=wherey()+1; int *p1, *p2 ;
for (p1=a[0]; p1<=a[n1-1]; p1+=n2max, y++, i++)
{ if (i==i1) textcolor( col1); else if (i==i2) textcolor(col2);
else textcolor(col3);
for (x=1, p2=p1; p2
{ gotoxy(x,y); cprintf("%5d", *p2);
}
}
cout<
}
void ClMatr::MaxMin(int *max, int *Nmax, int *min, int *Nmin)
{ *max=*min=a[0][0]; *Nmax=*Nmin=0;
for (int i=0;i
for (int j=0;j
{ int el=*(a[0]+n2max*i+j);
if (*max
{ *max=el; *Nmax=i;
}
else if (*min>el)
{ *min=el; *Nmin=i;
}
}
}
int main()
{ int n1, n2, Nmax, Nmin, max, min; clrscr();
cout<<"\nn1="; cin>>n1; cout<<" n2="; cin>>n2;
ClMatr ob(n1,n2); clrscr();
ob.MyInp(); cout<
ob.MaxMin(&max,&Nmax,&min,&Nmin);
textcolor(10);
cprintf("Max element=%d in %d row\r\n",max , Nmax+1 );
textcolor(11);
cprintf("Min element=%d in %d row\r\n",min , Nmin+1 );
if (Nmax!=Nmin)
ob.MyColorOut(Nmax, Nmin, 10,11, 15);
getch(); return 0;
}