Страница 2 из 3

Добавлено: 12 окт 2005, 15:55
Kolinus
должно работать со стрленом. попробуй подключить еще stdlib.h

Добавлено: 12 окт 2005, 19:20
Lakomka
переставила с++ и заработало :wink: пасибо большое за помощь. вот еще бы как-то те две задачки побороть и счастье будет полным....

Добавлено: 12 окт 2005, 20:37
Kolinus
За счастье бороться надо ;)
Будет время - посмотрю не будет - не посмотрю
а какие именно две ?

Добавлено: 13 окт 2005, 11:44
Lakomka
Вот эти...

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

Задача 2 Дана квадратная матрица размерности K<20. Найти сумму ее элементов, находящихся на диагонали, "ортогональной" главной.

Добавлено: 13 окт 2005, 18:57
Kolinus
вторая - ортоганальная диагональ - енто диагональ которая начинается справа сверху и оканчивается слева снизу отсюда имеем
когда m - целевая матрица
int sum=0;
int j=k;
for(int i=0;i<k;i++){
sum+=m[j--];

Добавлено: 13 окт 2005, 18:59
Kolinus
сорри m[--j]
либо
int j=k-1;
for(int i=0;i<k;i++){
sum+=m[j];
j--;
}

Добавлено: 13 окт 2005, 19:30
Kolinus
последняя - ваапще красота
смысл такой - вычитаешь из введенного числа последовательно все натуральные числа
то есть 1 2 3 и тд как только остается число меньшее чем следующее вычитаемое число то выходишь из цикла и смотришь - если единица то будет 1 если другое число - то 0

Добавлено: 17 окт 2005, 10:13
Lakomka
бр-рррр первую про k-ю цифру последовательности так и не поняла :( а с матрицей спасибо, получилось :wink:

Добавлено: 17 окт 2005, 16:04
Kolinus
объясняю на примере
сверху послдеовательность снизу номер цифры
пусть тебе ввели 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
там же так и написано ;)

Добавлено: 18 окт 2005, 10:45
Lakomka
ммм.. получилось :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;}
} }