пожалуйста помогите с программами по С++

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

должно работать со стрленом. попробуй подключить еще stdlib.h
В SAD - все в SAD.
Lakomka
Сообщения: 14
Зарегистрирован: 06 окт 2005, 11:05

переставила с++ и заработало :wink: пасибо большое за помощь. вот еще бы как-то те две задачки побороть и счастье будет полным....
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

За счастье бороться надо ;)
Будет время - посмотрю не будет - не посмотрю
а какие именно две ?
В SAD - все в SAD.
Lakomka
Сообщения: 14
Зарегистрирован: 06 окт 2005, 11:05

Вот эти...

Задача 1. Дано натуральное число k. Определить k-ю цифру последовательности, где выписаны подряд степени числа 10

Задача 2 Дана квадратная матрица размерности K<20. Найти сумму ее элементов, находящихся на диагонали, "ортогональной" главной.
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

вторая - ортоганальная диагональ - енто диагональ которая начинается справа сверху и оканчивается слева снизу отсюда имеем
когда m - целевая матрица
int sum=0;
int j=k;
for(int i=0;i<k;i++){
sum+=m[j--];
В SAD - все в SAD.
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

сорри m[--j]
либо
int j=k-1;
for(int i=0;i<k;i++){
sum+=m[j];
j--;
}
В SAD - все в SAD.
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

последняя - ваапще красота
смысл такой - вычитаешь из введенного числа последовательно все натуральные числа
то есть 1 2 3 и тд как только остается число меньшее чем следующее вычитаемое число то выходишь из цикла и смотришь - если единица то будет 1 если другое число - то 0
В SAD - все в SAD.
Lakomka
Сообщения: 14
Зарегистрирован: 06 окт 2005, 11:05

бр-рррр первую про k-ю цифру последовательности так и не поняла :( а с матрицей спасибо, получилось :wink:
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

объясняю на примере
сверху послдеовательность снизу номер цифры
пусть тебе ввели 11
110100100010000100
123456789012345678
в цикле начинаешь
11-1=10-2=8-3=5-4=1<=5 => 1
пусть ввели 12
12-1=11-2=9-3=6-4=2<=5 => 0
там же так и написано ;)
В SAD - все в SAD.
Lakomka
Сообщения: 14
Зарегистрирован: 06 окт 2005, 11:05

ммм.. получилось :P
теперь заморочка вот на чем
Определить, является ли введенная строка правильной записью целого шестнадцатеричного числа без знака, прога запускается, но когда ввожу строку (например 5А3) результат выдает не тот что нужно, она на каждую совпадающую букву или цифру в строке пишет да да да

Код: Выделить всё

#include <iostream>
using namespace std;
#include <stdio.h>
#include <windows.h>
#include <string.h>

void main ()
{

char str[128];
 
  CharToOem("Введите строку",str);cout<<str;cin>>str;

int i; 
for(i=0;i<strlen(str);i++) 
{ 
if (strspn(str, "0123456789abcdefABCDEF") == strlen (str))

{ 	cout << " yes "  << endl;} 

else {cout << " no "  << endl;}
} }
Ответить