Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
aisylu
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
14.01.2013, 15:18     Почему у меня не работает программа? #1
блин что тут не так?
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;
    }
}



буду благодарна)))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
14.01.2013, 15:20     Почему у меня не работает программа? #2
тут ошибка
Цитата Сообщение от aisylu Посмотреть сообщение
if (k=0)
C++
1
if (k == 0)
aisylu
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)
все равно то же самое пишет(
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
14.01.2013, 15:33     Почему у меня не работает программа? #4
Фигурные скобки неправильно расставлены. После return 0; две закрывающих стоят
Цитата Сообщение от aisylu Посмотреть сообщение
return 0;
}
}
aisylu
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 раньше установлен был
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 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;
}
aisylu
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 секунд
помогите пожалуйста! а то мне программы завтра сдавать надо уже((
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 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;
}
aisylu
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
14.01.2013, 15:56  [ТС]     Почему у меня не работает программа? #9
[QUOTE=TrueBit;3999774]Вобще, что програма должна делать? У вас и у первых двух циклов неправильно скобки стоят, если хотите рендомно забить массив перед основным алгоримом:

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

КОгда у меня 2012 был, я его один раз запустила, все ок работало, пыталась на следующий день опять запустить, ошибки какие то выдавало, и так с каждой программой, решила переустановить, сейчас 2010 стоит ((
v.a.l.i.d
 Аватар для v.a.l.i.d
412 / 377 / 10
Регистрация: 21.09.2012
Сообщений: 913
14.01.2013, 16:02     Почему у меня не работает программа? #10
aisylu, А вы наверно пустой проект создаете? У меня тоже VS 2010, но таких ошибок еще не было
aisylu
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' но перевод на другую строку не осуществляется))
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 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();
}
aisylu
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();
}

блин работает, но там мне многое не понятно...и мы так не пишем
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 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;
}
aisylu
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.
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 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;
}
aisylu
1 / 1 / 1
Регистрация: 25.12.2012
Сообщений: 17
14.01.2013, 17:51  [ТС]     Почему у меня не работает программа? #17
спасибо огромное))
ахах только я поняла что программа не правильный ответ выводит, ну что ж попробую сама исправить)
TrueBit
 Аватар для TrueBit
95 / 95 / 12
Регистрация: 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;
}
aisylu
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2013, 18:57     Почему у меня не работает программа?
Еще ссылки по теме:

Почему программа Работает? C++
C++ Почему программа не работает?
Почему не работает программа? C++

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

Или воспользуйтесь поиском по форуму:
Gennadich_
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;
        }
        
    }
}
Yandex
Объявления
14.01.2013, 18:57     Почему у меня не работает программа?
Ответ Создать тему
Опции темы

Текущее время: 12:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru