Int main()
{
srand(time(NULL));
double x, dif, sred;
int n, m, j, i, si=0, sj=0;
cin>>n>>m;
double **a=new double*[n];
for (i=0; i<n; i++)
{
a[i]=new double[m];
for (j=0; j<m; j++)
a[i][j]=(rand()%100)/3.;
}
for (i=0; i<n; i++){
for (j=0; j<m; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
sred=sred_arifm(a, n, m);
dif=fabs(sred-a[0][0]);
for (i=0; i<n; i++)
for (j=0; j<m; j++)
if (fabs(sred-a[i][j])<dif)
{
dif=fabs(sred-a[i][j]);
si=i;
sj=j;
}
cout<<si<<" "<<sj;
getch();
}
double sred_arifm(double **a,int n,int m)
{
double sum=0;
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
sum=sum+a[i][j];
sum=sum/(n*m);
return sum;
}
В произвольном тексте, содержащем не более 10 строк, в каждой строке не более 80 символов. Вывести:
самую длинную строку текста;
самую короткую строку текста;
все симметричные строки (палиндромы) текста.
Определение, является ли строка симметричной оформить как функцию. Глобальных переменных не использовать.
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
using namespace std;
int poly(string str);
Int main()
{
int k=0;
string min, max, str;
getline(cin, str);
max=str;
min=str;
while (cin.fail()==false)
{
if (min.size()>str.size())
min=str;
if (max.size()<str.size())
max=str;
if (poly(str)) cout<<"polindrojm: "<<str<<endl;
getline(cin, str);
}
cout<<"Max: "<<max<<endl;
cout<<"Min: "<<min<<endl;
getch();
}
int poly(string str)
{
int n=str.size();
for (int i=0; i<n/2; i++)
{
if (str[i]!=str[n-i-1])
return 0;
}
return 1;
}
В произвольном тексте, содержащем не более 10 строк, в каждой строке не более 80 символов, определить номера строк в которых встречаются знаки препинания. Считать, что в тексте встречаются только следующие знаки препинания: точка, запятая, точка с запятой, вопросительный знак, восклицательный знак, тире.
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
#include <vector>
using namespace std;
int prep(string str);
Int main()
{
vector<string> a;
string str;
getline(cin, str);
while (cin.fail()==false)
{
a.push_back(str);
getline(cin, str);
}
for (int i=0; i<a.size(); i++)
if (prep(a[i])) cout<<a[i]<<endl;
getch();
}
int prep(string str)
{
const char* s=".,;-!?";
for (int i=0; i<str.size(); i++)
if (strchr(s, str[i]))
return 1;
return 0;
}
Дано: квадратная матрица A[N,N]. Определить, есть в матрице строки, в которых сумма элементов одинакова. Оформить как функцию нахождение суммы элементов строки. Использовать динамическую память. Глобальных переменных не использовать.
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void vvod(int **x,int nx)
{
int i,j;
for(i=0;i<nx;i++)
for(j=0;j<nx;j++)
scanf("%d",&x[i][j]);
}
void vivod(int **x, int nx)
{
int i,j;
for(i=0;i<nx;i++)
{
printf("\n");
for(j=0;j<nx;j++)
printf("%5d",x[i][j]);
}
}
void sum(int **x,int nx)
{
int i,j;
int p=0;
int *s=new int[nx];
for (i=0;i<=nx;i++)
s[i]=0;
for(i=0;i<nx;i++)
for(j=0;j<nx;j++)
s[i]=s[i]+x[i][j];
for(i=0;i<nx;i++)
if(s[i]==s[p])
printf("\nYes");
else
printf("\nNo");
}
