Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
1

Почему у меня не работает программа?

14.01.2013, 15:18. Показов 1002. Ответов 19
Метки нет (Все метки)

блин что тут не так?
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
#include <iostream>
#include <math.h>
using namespace std;
const int n=5,m=6;
int main()
{
    int i,j;
    int a[n][m];
    int k,sum;
    for (i=1;i<n;i++)
    {
        for (j=1;j<m;j++)
        {
            a[i][j]=(rand()%100)-50;
            cout<<a[i][j]<<'\n';
        }
        k=0;
        for (j=1;j<m;j++)
        {
            sum=0;
            for (i=1;i<n;i++)
            {
                sum=sum+a[i][j];
                for (i=1;i<n;i++)
                {
                    if (a[i][j]>sum-a[i][j])
                        k=k+1;
                    if (k=1)
                        cout<<':';
                    cout<<a[i][j]<<'\n';
                    if (k=0)
                        cout<<'-';
                }
            }
        }
        cout<<'k=';
        return 0;
    }
}



буду благодарна)))
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.01.2013, 15:18
Ответы с готовыми решениями:

Почему у меня не работает нужно исправить
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;math.h&gt;...

Не могу понять почему у меня не работает sound,delay,nosound....
Не могу понять почему у меня не работает sound,delay,nosound.... Пишет ошибку Unitms.cpp(7):...

Почему при выборе switch у меня не работает вывод дерева на экран?!
////////////////////////////////////////////////////// // ...

Ребята, у меня не работает программа. Посмотрите
Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями. Найти номер первой...

19
422 / 387 / 113
Регистрация: 21.09.2012
Сообщений: 913
14.01.2013, 15:20 2
тут ошибка
Цитата Сообщение от aisylu Посмотреть сообщение
if (k=0)
C++
1
if (k == 0)
1
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
14.01.2013, 15:23  [ТС] 3
1>LINK : fatal error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден
такая ошибка вот

Добавлено через 1 минуту
Цитата Сообщение от v.a.l.i.d Посмотреть сообщение
тут ошибка

C++
1
if (k == 0)
все равно то же самое пишет(
0
422 / 387 / 113
Регистрация: 21.09.2012
Сообщений: 913
14.01.2013, 15:33 4
Фигурные скобки неправильно расставлены. После return 0; две закрывающих стоят
Цитата Сообщение от aisylu Посмотреть сообщение
return 0;
}
}
0
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
14.01.2013, 15:44  [ТС] 5
пыталась даже отключить
Enable Incremental Linking
но пишет
"Зачет.exe": Загружено: "C:\Users\00\Desktop\Зачет\Зачет\Debug\Зачет.exe", Символы загружены.
"Зачет.exe": Загружено: "C:\Windows\SysWOW64\ntdll.dll", Невозможно найти или открыть файл PDB
"Зачет.exe": Загружено: "C:\Windows\SysWOW64\kernel32.dll", Невозможно найти или открыть файл PDB
"Зачет.exe": Загружено: "C:\Windows\SysWOW64\KernelBase.dll", Невозможно найти или открыть файл PDB
"Зачет.exe": Загружено: "C:\Windows\SysWOW64\msvcp100d.dll", Символы загружены.
"Зачет.exe": Загружено: "C:\Windows\SysWOW64\msvcr100d.dll", Символы загружены.
Программа "[90840] Зачет.exe: Машинный код" завершилась с кодом 0 (0x0).

Добавлено через 11 минут
Цитата Сообщение от v.a.l.i.d Посмотреть сообщение
Фигурные скобки неправильно расставлены. После return 0; две закрывающих стоят
нет там вроде все правильно. я прочитала что это может быть, из-за того, что у меня 2012 раньше установлен был
0
98 / 98 / 47
Регистрация: 19.11.2012
Сообщений: 195
14.01.2013, 15:44 6
Учитесь делать код структурированным. Так легче понять. А по теме, у вас ретурн в конце первого цикла(внутри цикла). Цикл выполнится только 1 раз и программа завершится.
Вот вынес return и cout за цикл теперь завершается позже:
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
#include <iostream>
using namespace std;
const int n=5,m=6;
int main() {
    int i,j;
    int a[n][m];
    int k,sum;
    for (i=1;i<n;i++) {
        for (j=1;j<m;j++) {
            a[i][j]=(rand()%100)-50;
            cout<<a[i][j]<<'\n';
        }
        k=0;
        for (j=1;j<m;j++) {
            sum=0;
            for (i=1;i<n;i++) {
                sum=sum+a[i][j];
                for (i=1;i<n;i++) {
                    if (a[i][j]>sum-a[i][j])
                        k=k+1;
                    if (k==1)
                        cout<<':';
                    cout<<a[i][j]<<'\n';
                    if (k==0)
                        cout<<'-';
                }
            }
        }
    }
    cout<<'k=';
    getchar();
    return 0;
}
1
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
14.01.2013, 15:53  [ТС] 7
Цитата Сообщение от TrueBit Посмотреть сообщение
Учитесь делать код структурированным. Так легче понять. А по теме, у вас ретурн в конце первого цикла(внутри цикла). Цикл выполнится только 1 раз и программа завершится.
Вот вынес return и cout за цикл теперь завершается позже:
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
#include <iostream>
using namespace std;
const int n=5,m=6;
int main() {
    int i,j;
    int a[n][m];
    int k,sum;
    for (i=1;i<n;i++) {
        for (j=1;j<m;j++) {
            a[i][j]=(rand()%100)-50;
            cout<<a[i][j]<<'\n';
        }
        k=0;
        for (j=1;j<m;j++) {
            sum=0;
            for (i=1;i<n;i++) {
                sum=sum+a[i][j];
                for (i=1;i<n;i++) {
                    if (a[i][j]>sum-a[i][j])
                        k=k+1;
                    if (k==1)
                        cout<<':';
                    cout<<a[i][j]<<'\n';
                    if (k==0)
                        cout<<'-';
                }
            }
        }
    }
    cout<<'k=';
    getchar();
    return 0;
}

все равно тоже самое, потому что видимо тут ошибка не в коде, а с самой программой что-то не то

Добавлено через 1 минуту
вот я нашла то что вот это сделать нужно

Да, я не внимательно посмотрел, слона как, говорится, не заметил.
В главном меню Проект->Свойства. Откроется окно Страница свойств ...
Там слева переходим Свойства конфигурации->C/C++-Создание кода.
Теперь справа находим строку Библиотека времени выполнения.
Если у вас отладочная версия, то содержимое строки должно быть Многопоточная DLL с возможностью отладки (/MDd) или Многопоточная с возможностью отладки (/MTd).
Проверьте это.


но у меня visual studio 2010 ничего подобного не нашла

Добавлено через 25 секунд
помогите пожалуйста! а то мне программы завтра сдавать надо уже((
0
98 / 98 / 47
Регистрация: 19.11.2012
Сообщений: 195
14.01.2013, 15:53 8
Вобще, что програма должна делать? У вас и первые 2 цикла не правильно скобки стоят, если вы хотите перед основным алгоритмом рендомно забить массив. Вот отдельный рендом:
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
#include <iostream>
using namespace std;
const int n=5,m=6;
int main() {
    int i,j;
    int a[n][m];
    int k,sum;
    for (i=0;i<n;i++) {
        for (j=0;j<m;j++) {
            a[i][j]=(rand()%100)-50;
            cout<<a[i][j]<<'\n';
        }
    }
    k=0;
    for (j=0;j<m;j++) {
        sum=0;
        for (i=0;i<n;i++) {
            sum=sum+a[i][j];
            for (i=0;i<n;i++) {
                if (a[i][j]>sum-a[i][j])
                    k=k+1;
                if (k=1)
                    cout<<':';
                cout<<a[i][j]<<'\n';
                if (k=0)
                    cout<<'-';
            }
        }
    }
    cout<<'k=';
    getchar();
    return 0;
}
1
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
14.01.2013, 15:56  [ТС] 9
[QUOTE=TrueBit;3999774]Вобще, что програма должна делать? У вас и у первых двух циклов неправильно скобки стоят, если хотите рендомно забить массив перед основным алгоримом:

определить к количество особых эелментов массива А, считая его элемент особым, если он больше суммы остальных элементов его столбца. У меня ан паскале он записанный есть. все почти так же, и работает.

КОгда у меня 2012 был, я его один раз запустила, все ок работало, пыталась на следующий день опять запустить, ошибки какие то выдавало, и так с каждой программой, решила переустановить, сейчас 2010 стоит ((
0
422 / 387 / 113
Регистрация: 21.09.2012
Сообщений: 913
14.01.2013, 16:02 10
aisylu, А вы наверно пустой проект создаете? У меня тоже VS 2010, но таких ошибок еще не было
1
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
14.01.2013, 16:25  [ТС] 11
Цитата Сообщение от v.a.l.i.d Посмотреть сообщение
aisylu, А вы наверно пустой проект создаете? У меня тоже VS 2010, но таких ошибок еще не было
да пустой. ну все наверно из-за того, что у меня 2012 раньше был

Добавлено через 21 минуту
так я написала в конце вот так cin.get();
cin.get();
return 0;
}
но
теперь другая проблема, вроде и есть '\n' но перевод на другую строку не осуществляется))
0
98 / 98 / 47
Регистрация: 19.11.2012
Сообщений: 195
14.01.2013, 16:27 12
вот держи:
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
#include <iostream>
#include <ctime>
using namespace std;
#define n 5
#define m 6
 
int sum_stolb(int * mas,int num_stolb) { // возвращает сумму эл-тов стобца
    int sum=0;
    for(int i=0; i<5; i++)
        sum+=mas[i*m+num_stolb];
    return sum;
}
int main() {
    int a[n][m];
    int k=0;
    int sum=0;
    srand((unsigned)time(NULL));
    for (int i=0;i<n;i++) {
        for (int j=0;j<m;j++) {
            a[i][j]=(rand()%100)-50;
            printf("%4d ",a[i][j]);
        }
        printf("\n");
    }
    printf("------------------------------\n");
    for(int j=0;j<m;j++)
        printf("%4d ",sum_stolb(*a,j));
    printf("\n");
    for(int j=0;j<m;j++) {
        for(int i=0;i<n;i++)
            if(a[i][j]>sum_stolb(*a,j))
                k++;
    }
    cout<<"k=" <<k;
    getchar();
}
0
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
14.01.2013, 16:39  [ТС] 13
Цитата Сообщение от TrueBit Посмотреть сообщение
вот держи:
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
#include <iostream>
#include <ctime>
using namespace std;
#define n 5
#define m 6
 
int sum_stolb(int * mas,int num_stolb) { // возвращает сумму эл-тов стобца
    int sum=0;
    for(int i=0; i<5; i++)
        sum+=mas[i*m+num_stolb];
    return sum;
}
int main() {
    int a[n][m];
    int k=0;
    int sum=0;
    srand((unsigned)time(NULL));
    for (int i=0;i<n;i++) {
        for (int j=0;j<m;j++) {
            a[i][j]=(rand()%100)-50;
            printf("%4d ",a[i][j]);
        }
        printf("\n");
    }
    printf("------------------------------\n");
    for(int j=0;j<m;j++)
        printf("%4d ",sum_stolb(*a,j));
    printf("\n");
    for(int j=0;j<m;j++) {
        for(int i=0;i<n;i++)
            if(a[i][j]>sum_stolb(*a,j))
                k++;
    }
    cout<<"k=" <<k;
    getchar();
}

блин работает, но там мне многое не понятно...и мы так не пишем
0
98 / 98 / 47
Регистрация: 19.11.2012
Сообщений: 195
14.01.2013, 17:03 14
Я несовсем понял, что вы хотели сказать через ':' и через '-' в cout? Это что подходит эл-т или нет? Вот ваш код изменил, возможно печатает что хотели(мой код между /* и */ можно удалить - это коментарий):
P.S. если хотите чтобы программа выдавала разные значения, то добавьте библиотеку #include <ctime> после <iostream>, и в main'e вызовите один раз функцию srand((unsigned)time(NULL));
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
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <math.h>
using namespace std;
const int n=5,m=6;
/*int sum_stolb(int * mas,int num_stolb) {
    int sum=0;
    for(int i=0; i<5; i++)
        sum+=mas[i*m+num_stolb];
    return sum;
}*/
int main()
{
    int i,j;
    int a[n][m];
    int k,sum;
    for (i=0;i<n;i++)
    {
        for (j=0;j<m;j++)
        {
            a[i][j]=(rand()%100)-50;
            cout<<a[i][j] << " ";
            //printf("%4d ",a[i][j]);
        }
        cout << "\n";
    }
 
    /*cout << "---\n";
    for(int i=0; i<m;i++)
        cout << sum_stolb(*a,i) << " ";
    cout << "\n";*/
 
    k=0;
    for(j=0;j<m;j++)
    {
        sum=0;
        for (i=0;i<n;i++)
        {
            sum=sum+a[i][j];
        }
        for (i=0;i<n;i++)
        {
            if (a[i][j]>sum) {
                cout<<"yes" << a[i][j] << " ";
                k=k+1;
            } else {
                cout<<"no" << a[i][j]<<" ";
            }
        }
        cout << "\n";
    }
    cout<<"k=" << k;
    getchar();
    return 0;
}
1
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
14.01.2013, 17:33  [ТС] 15
Ну почти

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
#include <iostream>
#include <math.h>
using namespace std;
const int n=5,m=6;
int main()
{
    int i,j;
    int a[n][m];
    int k,sum;
    for (i=0;i<n;i++)
    {
        for (j=0;j<m;j++)
        {
            a[i][j]=(rand()%100)-50;
            cout<<a[i][j] << " ";
            //printf("%4d ",a[i][j]);
        }
        cout << "\n";
    }
    k=0;
    for(j=0;j<m;j++)
    {
        sum=0;
        for (i=0;i<n;i++)
        {
            sum=sum+a[i][j];
        for (i=0;i<n;i++)
                {
                  if (a[i][j]>sum-a[i][j])
                        k=k+1;
                    if (k==1)
                        cout<<':';
                    cout<<a[i][j]<<'\n';
                    if (k==0)
                        cout<<'-';
        }
            }
        cout << "\n";
        }
       cout<<"k=" << k;
    getchar();
    return 0;
}
вот что у менят. только там после матрицы что-то лишнее пишет, как убрать???

Добавлено через 6 минут
вот как у меня на паскале..хотелось бы также

Pascal
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
Const
  n=5;
  m=6;
Var
  a: array [1..n, 1..m] of integer;
  i, j, k: integer;
  sum: integer;
Begin
  randomize;
  writeln('Матрица А:');
  for i:=1 to n do
  begin
    for j:=1 to m do
    begin
      a[i,j]:=random(100)-20;
      write(a[i,j]:4);
    end;
    writeln;
  end;
  k:=0;
  for j:=1 to m do
  begin
    sum:=0;
    for i:=1 to n do
      sum:=sum+a[i,j];
    for i:=1 to n do
      if a[i,j] > sum-a[i,j]
      then
      begin
      k:=k+1;
      if k=1 then writeln(':');
       writeln(a[i,j]);
       if k=0 then writeln(' k элементов нет');
      end;
  end;
  writeln('Результат:', k);
  readln;
End.
0
98 / 98 / 47
Регистрация: 19.11.2012
Сообщений: 195
14.01.2013, 17:43 16
Я вам писал на случай, что эл-т особый если он больше суммы всех эл-тов столбца. В вашем примере это случай если, он больше остальных предыдущих элементов столбца, а убрать лишнее в вашем примере вот, просто лишние cout и проверки убрать:
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
#include <iostream>
#include <math.h>
using namespace std;
const int n=5,m=6;
 
int main() {
    int i,j;
    int a[n][m];
    int k,sum;
    for (i=0;i<n;i++) {
        for (j=0;j<m;j++) {
            a[i][j]=(rand()%100)-50;
            cout<<a[i][j] << " ";
        }
        cout << "\n";
    }
    k=0;
    for(j=0;j<m;j++) {
        sum=0;
        for (i=0;i<n;i++) {
            sum=sum+a[i][j];
            for (i=0;i<n;i++) {
                if (a[i][j]>sum-a[i][j])
                    k=k+1;
            }
        }
    }
    cout<<"k=" << k;
    getchar();
    return 0;
}
1
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
14.01.2013, 17:51  [ТС] 17
спасибо огромное))
ахах только я поняла что программа не правильный ответ выводит, ну что ж попробую сама исправить)
0
98 / 98 / 47
Регистрация: 19.11.2012
Сообщений: 195
14.01.2013, 18:02 18
У вас там 2 цикла, вот вроде парвильно так:
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
#include <iostream>
#include <math.h>
using namespace std;
const int n=5,m=6;
 
int main() {
    int i,j;
    int a[n][m];
    int k,sum;
    for (i=0;i<n;i++) {
        for (j=0;j<m;j++) {
            a[i][j]=(rand()%100)-50;
            cout<<a[i][j] << " ";
            //printf("%4d ",a[i][j]);
        }
        cout << "\n";
    }
    cout << "\n";
    k=0;
    for(j=0;j<m;j++) {
        sum=0;
        for (i=0;i<n;i++) {
            sum=sum+a[i][j];
            //printf("%4d ",sum-a[i][j]); 
            //cout << sum-a[i][j] << " ";
            if (a[i][j]>sum-a[i][j])
                k=k+1;
        }
        //cout << "\n";
    }
    cout<<"k=" << k;
    getchar();
    return 0;
}
1
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
14.01.2013, 18:50  [ТС] 19
Цитата Сообщение от TrueBit Посмотреть сообщение
У вас там 2 цикла, вот вроде парвильно так:
нет не правильно...

Добавлено через 36 минут
вообщем ураааааааа! вот код может тут понадобится кому-нибудь

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
#include <iostream>
#include <conio.h>
using namespace std;
const int n=5,m=6;
int main()
{
int A[n][m];
int k=0,sum=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
A[i][j]=(rand()%100)-30;
cout<<A[i][j]<<"       ";
}
cout<<endl;
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
sum=sum+A[j][i];
}
for(int a=0;a<n;a++)
{
if(A[a][i]>sum-A[a][i]) k++;
}
sum=0;
}
cout<<"k=" << k;
    getchar();
return 0;
}
0
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 3
14.01.2013, 18:57 20
Простейшая программа, где должен двигаться символ по нажатию клавиш.. Почему она неправильно работает?
Помогите, люди, а то я уже мозг сломал. Сильно не пинайте, я ещё новичок в программировании..
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
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{
    int key,x=0,y=0;
    char map[80][80];
    for(int i=0;i<30;i++)    //генерация карты
    {
        for(int j=0;j<30;j++)
        {
            map[j][i]=' ';
        }
    }                        //окончание генерации карты
    map[0][0]='T';           //ставим игрока
    
    while(1) //главный цикл игры
    {
        
        system("cls");
        for(int i=0;i<30;i++){
            for(int j=0;j<30;j++){
                cout<<map[j][i];
            }
            cout<<endl;
        }
        key=static_cast<int>(_getch());
        switch(key)
        {
            case 72:
                map[x][y]=' ';
                y--;
                map[x][y]='T';
                break;
            case 75:
                map[x][y]=' ';
                x--;
                map[x][y]='T';
                break;
            case 77:
                map[x][y]=' ';
                x++;
                map[x][y]='T';
                break;
            case 80:
                map[x][y]=' ';
                y++;
                map[x][y]='T';
                break;
            case 27:
                exit(0);
                break;
        }
        
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.01.2013, 18:57

Почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает
почему программа не работает на MFC статичной библиотеки. а вот на стандартном мфс работает. Имею...

Почему программа Работает?
Объясните пожалуйста, как это может работать? Определять переменную вроде можно только один раз. А...

Почему не работает программа
задача взята из учебника Дейтел Х. Как програмировать на С++ рис 6.1 вроде все набрал правильно но...

Почему программа не работает?
Здраствуйте, я решил изучить с++, делал все упражнения по бесплатным урокам Михаила Майорова, но...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru