Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Милашечка
0 / 0 / 4
Регистрация: 16.02.2013
Сообщений: 122
1

ошибочка. не понимаю как сделать чтоб типы соответствовали

16.02.2013, 19:49. Просмотров 340. Ответов 8
Метки нет (Все метки)

по надобности переделывала паскалевскую блок-схему под С++.начало выбивать много ошибок. вот с одной из них не могу справиться


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include<math.h>
#include <stdlib.h>
#include<string.h>
int main()
{
    int i,j,f,n,r; int y[2],d[3];
    char k,l,s,t;
printf("universal'noe mno*estvo U:[1...255]");
 for (int j = 0; j<255; ++j)
   y[j] = j+1;
   printf("\n");
printf("vvedite kolli4estvo elementov mno*estva A:");
 scanf("%d",&n); 
 
 printf("mno*estvo A sostoit iz elementov:"); 
 for (int i=1;i<=n;i++)
 d[i]=i+1; 
 printf("%d",d[i]);
 printf("\n") ; 
     
r=0;
for(k=1;k<=strlen(y[j]);k++)
{f=0;
for (l=1;l<=strlen(d[i]);l++)
if(y[j]==d[i]) f=1;
if (f=0) r=r+y[j];
}
printf("%d",r);
 
printf("\n");
system("pause");
return 0;
 
}

выбивает ошибку initializing argument 1 of `size_t strlen(const char*)' как мне ее исправить??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2013, 19:49
Ответы с готовыми решениями:

Не понимаю как сделать
Найти и распечатать все натуральные трехзначные числа, равные сумме кубов своих цифр....

Не понимаю как сделать!
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, на...

не понимаю как сделать наследование классов
Народ, здарова! Есть код: #include&lt;iostream.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt;...

Не понимаю как сделать try/catch в программе
в общем, у меня стек заполняется только целочисленным типом данных (int). Но также необходимо...

Найди серединку. Не понимаю как сделать и как начать
Вводятся натуральные числа - А и В (А&lt;В), которые не превышают 100000000. Найти число...

8
popelyuk
8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
16.02.2013, 21:43 2
Напишите на какую строчку ругается компилятор, а то вы только привели описание ошибки и то частично.
0
zss
Модератор
Эксперт С++
7178 / 6677 / 4226
Регистрация: 18.12.2011
Сообщений: 17,621
Завершенные тесты: 1
16.02.2013, 22:27 3
Путаница в коде полная.
0.Ошибки выдаются по причине того, что d и y не строки.
И нельзя к ним применить strlen().

1. Дальше: массив y[2] у Вас имеет длину 2, а записываете в него 255 чисел:
for (int j = 0; j<255; ++j)
y[j] = j+1;
2. В строке if(y[j]==d[i])
j равно 256, а i равно n+1
не думаю, что это имелось ввиду.
0
NeonLost
Пес войны
110 / 87 / 22
Регистрация: 23.02.2012
Сообщений: 653
16.02.2013, 22:29 4
для начала, вы i и j объявляете несколько раз...)
1
zss
Модератор
Эксперт С++
7178 / 6677 / 4226
Регистрация: 18.12.2011
Сообщений: 17,621
Завершенные тесты: 1
16.02.2013, 22:38 5
Цитата Сообщение от NeonLost Посмотреть сообщение
для начала, вы i и j объявляете несколько раз...)
Это не так уж важно. Вторые объявления локализуются внутри циклов.
А вот алгоритм программы совершенно невозможно понять.
Все переменные перепутаны до неузнаваемости.
0
Милашечка
0 / 0 / 4
Регистрация: 16.02.2013
Сообщений: 122
16.02.2013, 23:39  [ТС] 6
[img]http://s019.***********/i611/1302/f6/c7fedac54a3b.jpg[img] - извините, еще не разобралась как правильно изображения вставлять
сама запуталась уже не могу как..видно и правда глупости написала..дали блок-схему преподы с функциями некоторыми как на паскале.. а учат все на С++ делать..и тип string еще не проходили а уже надо его использовать.. я просто незнаю как..

Добавлено через 13 минут
а ошибку выбивает здесь
C++
1
for (l=1;l<=strlen(d[i]);l++)
и здесьfor
C++
1
(k=1;k<=strlen(y[j]);k++)
0
avfed
15 / 13 / 0
Регистрация: 24.01.2013
Сообщений: 23
17.02.2013, 01:13 7
честно сказать сам алгоритм достаточно странно выглядит, может из-за того, что его изначально для паскаля делали, вообще у меня из вашего кода получилось вот что
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include<string.h>
#include <iostream>
using namespace std;
 
const char y[]="QWERTYUIOPASDFGHJKLZXCVBNM";
 
void dopoln(char* D,char *R)
{
    int i,n,un;
    n=strlen(D);
    un=strlen(y);
    for (i=0;i<un-n;i++)R[i]=' ';
    i=0;
    int f;
    for (int j=0;j<un;j++)
    {
        f=0;
        for (int k=0;k<n;k++)
        {
            if (D[k]==y[j])f=1;
        }
        if (!f)
        {
            R[i]=y[j];i++;
        }
    }
}
 
 
 
int main()
{
 
    char *d=new char(sizeof("QWERTYUIOPGHJKLZXCVBNM"));
    d="QWERTYUIOPGHJKLZXCVBNM";
    char *r=new char[strlen(y)-strlen(d)];
    dopoln(d,r);
    for (int i =0;i<strlen(y)-strlen(d);i++)cout<<r[i];
    cout<<endl;
 
    delete [] r;
    delete [] d;
    return 0;
 
}
это с учетом того, что алгоритм вроде как для функции
1
Милашечка
0 / 0 / 4
Регистрация: 16.02.2013
Сообщений: 122
17.02.2013, 01:56  [ТС] 8
Цитата Сообщение от avfed Посмотреть сообщение
честно сказать сам алгоритм достаточно странно выглядит,
это с учетом того, что алгоритм вроде как для функции
согласна что странно.. саму этот момент ох как странной делает..да,алгоритмы для функции,и таких функций еще несколько..с половиной только разобралась..этот вариант мне еще и с числами нужно сделать..с числами думаю проще должно быть..


спасибо
0
avfed
15 / 13 / 0
Регистрация: 24.01.2013
Сообщений: 23
17.02.2013, 11:05 9
для цифр на самом деле в общем случае немного сложнее, хотя для учебы для вас думаю будет достаточно так(не заморачиваясь с определением внутри функции размера динамического массива, а задавшись размерами множеств как константами, хотя насколько я помню остатки паскаля там без этого вообще мрак получался), кстати ввод D можно по желанию прикрутить с клавиатуры
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include<string.h>
#include <iostream>
using namespace std;
#define un 16
#define n 10
 
const int y[un]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
 
int * dopoln(int* D)
{
    int i;
    int *R=new int[un-n];
    for (i=0;i<un-n;i++)R[i]=0;
    i=0;
    int f;
    for (int j=0;j<un;j++)
    {
        f=0;
        for (int k=0;k<n;k++)
        {
            if (D[k]==y[j])f=1;
        }
        if (!f)
        {
            R[i]=y[j];i++;
        }
    }
    return R;
}
 
int main()
{
 
    int *d=new int[n];
    for (int i=0;i<n;i++)d[i]=i+1;
    int *r;
    r=dopoln(d);
    for (int i =0;i<un-n;i++)cout<<r[i]<<"\n";
    cout<<endl;
 
    delete [] r;
    delete [] d;
    return 0;
 
}
0
17.02.2013, 11:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2013, 11:05

Немного не понимаю как правильно сделать наследование
Вот например, есть структура Point(точка). Если надо сделать структуру Round(круг), то в этом...

как сделать, чтоб кнопка работала?
есть форма с кнопкой, как сделать, чтоб кнопка работала?

Как сделать чтоб отделяло IP и Port
Нужен код для c++ чтоб программа поняла где ип,порт (IP:PORT) Я нуб помогите пожалуйста , молю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru