Пожалуйста,помогите мне решить задачки на C ++,нам задали 100 задачек,
надо решить за 7 дней,до 27-ого,времени вобрез.Эти задачи я не могу
решить:
1)Дано натуральное число N.Вычислить произведение N сомножителей:
1/2 * 7/8 * 13/14 * 19/20 * ...
2)Определить,встречается ли введенная цифра М среди первых трех
цифр дробной части заданного вещественного числа Р.
Среди N введенных чисел найти количество соседств положительных цифр.
3)Дана квадратная матрица размерности К<20.Найти сумму ее элементов,
находящихся на диагонали, "ортогональной" главной.
4)Дан вещественный массив A(N).Отсортировать его таким образом, чтобы
все положительные числа находились в начале,а отрицательные-в конце
массива и был сохранен исходный порядок следования элементов в обеих
группах.
Определить k-ю цифру последовательности 1234567891011121314...,в
которой выписаны подряд все натуральные числа.
6)Переформировать матрицу таким образом, чтобы ее столбцы распологались
по убыванию их поэлементных сумм.
Нати седловые точки матрицы (седловой точкой называется элемент,
являющийся минимальным в строке и максимальным в столбце).
Нати такую точку заданного на плоскости множества точек,сумма расстояний
от которой до остальных минимальна.
7)Дан массив символьных строк. Если в командной строке не заданы аргументы,
распечатать все строки, а если задана опция -n- распечатать последние n строк.
Во введенном словеподсчитать количество различных пар букв. (Например,в слове
babacabacd 5 различных пар букв)
Зарание большое человеческое спасибо.
пожалуйста помогите с программами по С++
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
1)
double rez=1;
for(int i=0;i<n;i++)
{
rez*=(i*6+1)/(i*6+2);
}
2)
b- введенное число
m - введенная цифра
и то и другое читаешь как строку (символ)
int i;
for(i=0;i<strlen(b);i++)
{
if(b=='.')
break;
}
int lim= (strlen(b)-i > 3) ? i+3 : strlen(b);
for(;i<lim;i++)
{
if(b==m)
{
//prisutstvuet
}
}
4)
A - твой массив
n - его размерность
про 0 ничего не сказано - поэтому ниче не известно
double * pol,*otr;
int k=0,l=0;
pol= new double [n];
otr= new double [n];
for(int i=0;i<n;i++)
{
if(A>0)
pol[k++]=A;
else if(A<0)
pol[l++]=A;
}
for(int i=0;i<k;i++)
A=pol;
for(int i=k;i<k+l;i++)
A=otr[i-k];
PS вчера встречал НГ...
double rez=1;
for(int i=0;i<n;i++)
{
rez*=(i*6+1)/(i*6+2);
}
2)
b- введенное число
m - введенная цифра
и то и другое читаешь как строку (символ)
int i;
for(i=0;i<strlen(b);i++)
{
if(b=='.')
break;
}
int lim= (strlen(b)-i > 3) ? i+3 : strlen(b);
for(;i<lim;i++)
{
if(b==m)
{
//prisutstvuet
}
}
4)
A - твой массив
n - его размерность
про 0 ничего не сказано - поэтому ниче не известно
double * pol,*otr;
int k=0,l=0;
pol= new double [n];
otr= new double [n];
for(int i=0;i<n;i++)
{
if(A>0)
pol[k++]=A;
else if(A<0)
pol[l++]=A;
}
for(int i=0;i<k;i++)
A=pol;
for(int i=k;i<k+l;i++)
A=otr[i-k];
PS вчера встречал НГ...
В SAD - все в SAD.
Kolinus, спасибо ты настоящий друг.Надо бы другме решать...
Мне тоже такую задачку решить надо, но почему-то этот код не срабатывает ругается на strlen, я его заменила на char, тогда прога стала ругаться на if(b==m)
Код: Выделить всё
2)
b- введенное число
m - введенная цифра
и то и другое читаешь как строку (символ)
int i;
for(i=0;i<strlen(b);i++)
{
if(b[i]=='.')
break;
}
int lim= (strlen(b)-i > 3) ? i+3 : strlen(b);
for(;i<lim;i++)
{
if(b[i]==m)
{
//prisutstvuet
}
}
стрлен выисляет длину строки а чар - енто тип данных что на что ты поменяла я не понял посему помочь не могу
а если ругается на стрлен то скорее всего не указана библиотека
а если ругается на стрлен то скорее всего не указана библиотека
В SAD - все в SAD.
Вот полностью код... библиотеку подключаю, а все равно не работает может я в другом месте где-нить напортачила :roll:
Код: Выделить всё
#include <iostream>
using namespace std;
#include <stdio.h>
#include <windows.h>
#include <fstream.h>
#include <string.h>
#include <strstream.h>
void main ()
{
char str[128];
int m;
float b;
CharToOem("Введите значение b ",str);cout<<str;cin>>b;
CharToOem("Введите значение m ",str);cout<<str;cin>>m;
int i;
for(i=0;i<strlen(b);i++)
{
if(b[i]=='.')
break;
}
int lim= (strlen(b)-i > 3) ? i+3 : strlen(b);
for(;i<lim;i++)
{
if(b[i]==m)
{
cout << " m prisutstvuet " << m << endl;
} } }
конечно напортачила
внимательно читаем написанное
ты же читаешь как числа - то есть тебе надо дополнительно перегонять прочитанное число в строку, либо перобъяви b m
внимательно читаем написанное
ключевая строчка про строкуb- введенное число
m - введенная цифра
и то и другое читаешь как строку (символ)
ты же читаешь как числа - то есть тебе надо дополнительно перегонять прочитанное число в строку, либо перобъяви b m
В SAD - все в SAD.
т.е. m и b объявить как char ? тогда == принимать компилятор не будет.. че-то я не понимаю
а с библиотеками у меня все нормально? а то strlen не признает тоже.
а с библиотеками у меня все нормально? а то strlen не признает тоже.
принимать будет.
какой средой \ версией компилятора пользуешься ?
char b[100], m;
какой средой \ версией компилятора пользуешься ?
char b[100], m;
В SAD - все в SAD.