Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
a16a
3 / 3 / 4
Регистрация: 16.02.2014
Сообщений: 132
1

Программа с Указателями, найти ошибки в коде

25.04.2014, 21:22. Просмотров 447. Ответов 5
Метки нет (Все метки)

Всем привет, надо отредактировать программу под указателями. я вот начал но что то не то сделал опять) Заранее спасибо !
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<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
      setlocale(LC_ALL,"rus"); 
      srand(time(0));
      int n,m; 
      printf("Ââåäèòå Г°Г*çìåð Г¬Г*òðèöû n=");   scanf("%d",&n); 
      printf("Ââåäèòå Г°Г*çìåð Г¬Г*òðèöû m=");   scanf("%d",&m);
      int i,k,j,mas[n][m],sum=0,buf,a=0,s;
      int *pm=&mas[0][0];
      for(i=0;i<n*m;i++)                 
      {*pm==rand()%5-2; *pm++;}
      printf("\nÑãåГ*èðèðîâГ*Г*Г*ûé matrix:");  
      pm=&mas[0][0];
      for(i=0;i<n;i++)
      {     printf("\n");
            for(j=0;j<m;j++)
      {     printf("%2d",*pm);
            *pm++;}}
      printf("\n\n===========> a) Г*óëåâîé ýëåìåГ*ГІ: <===========\n");  
      for(i=0;i<m;i++)
        {   if(mas[i][0]==0)
            {s=i;a=1;break;}
            else
            {a=0;}
        }
      if(a == 1) {printf("\nÏåðâûé ñòîëáåö èìååò Г*óëåâîé ýëåìåГ*ГІ\nГ€Г*äåêñ: a[%d][0]\n",s);}
      else       {printf("\nÑòîëáöîâ Г± ýëåìåГ*ГІГ*ìè Г°Г*ГўГ*ûìè Г*óëþ Г*ГҐГІ!!!\n");}
      printf("\n===========> ГЎ.1) ÑóììГ*: <===========\n");
      for(i=0;i<=n;i++)                    
      {  for(j=0;j<=n;j++)
         if((mas[i][j]<0) && (mas[i][j]%2==0))
         {sum+=mas[i][j];}}
      printf("\nÑóììГ* îòðèöГ*òåëüГ*ûõ ГЁ Г·ГҐГІГ*ûõ Г·ГЁГ±ГҐГ« Г°Г*ГўГ*Г®= %d\n",sum);
      printf("\n===========> ГЎ.2) ÑîðòèðîâêГ*: <===========\n\n"); 
      for(i=0;i<n;i++)  
        {for(j=0;j<m;j++) 
          {for(k=7;k>j;k--)
            if (mas[i][k]<mas[i][k-1])    
            { buf=mas[i][k];
              mas[i][k]=mas[i][k-1];    
              mas[i][k-1]=buf;
            }
           printf("%2d",mas[i][j]);
          }
           printf("\n");  
        } 
      printf("\n");
      system("pause");
      return 0;
}
Добавлено через 12 минут
в чем моя ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2014, 21:22
Ответы с готовыми решениями:

Программа с запуском из командной строки, найти ошибки в коде
Я написал код программы с процедурой, которая возвращает последнее вхождение...

Найти ошибку в коде с указателями
Здесь есть ошибки, может и глупые... но своим глазом фиг заметишь, посмотрите...

Найти и исправить ошибки в коде: игра "Крепс" (программа из учебника Харви и Пола Дейтелов)
Решил проверить работу программы из учебника Харви Дейтела и Пола Дейтеле....

Программа вычисления значения функции - ошибки в коде
Написать программу вычисления значения функции y=2x^2+3x-5 x є ...

Найти ошибки в коде
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #define N 100...

5
Catstail
Модератор
23606 / 11707 / 2046
Регистрация: 12.02.2012
Сообщений: 19,097
25.04.2014, 21:30 2
Цитата Сообщение от a16a Посмотреть сообщение
в чем моя ошибка?
- а что должна делать программа?
0
a16a
3 / 3 / 4
Регистрация: 16.02.2014
Сообщений: 132
26.04.2014, 03:38  [ТС] 3
Дана целочисленная прямоугольная матрица:

а) определить номер первого из столбцов, содержащих хотя бы один нулевой элемент;

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

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
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
      setlocale(LC_ALL,"rus"); 
      srand(time(0));
      int n,m; 
      printf("Ââåäèòå Г°Г*çìåð Г¬Г*òðèöû n=");   scanf("%d",&n); // ГђГ*çìåð Г¬Г*òðèöû
      printf("Ââåäèòå Г°Г*çìåð Г¬Г*òðèöû m=");   scanf("%d",&m);
      int i,k,j,mas[n][m],sum=0,buf,a=0,s;
      for(i=0; i<n; i++)                 // ââîäèì Г¬Г*òðèöó
      {for(j=0; j<m; j++)
      {mas[i][j]=rand()%5-2;} }
      printf("\nÑãåГ*èðèðîâГ*Г*Г*ûé Г¬Г*Г±Г±ГЁГў:");  // Âèä Г¬Г*òðèöû
      for(i=0; i<n; i++)
      {     printf("\n");
            for(j=0; j<m; j++)
      {     printf("%2d",mas[i][j]); }}
      printf("\n\n===========> a) Г*óëåâîé ýëåìåГ*ГІ: <===========\n");  
      for(i=0;i<m;i++)
        {   if(mas[i][0]==0)
            {s=i;a=1;break;}
            else
            {a=0;}
        }
      if(a == 1) {printf("\nÏåðâûé ñòîëáåö èìååò Г*óëåâîé ýëåìåГ*ГІ\nГ€Г*äåêñ: a[%d][0]\n",s);}
      else       {printf("\nÑòîëáöîâ Г± ýëåìåГ*ГІГ*ìè Г°Г*ГўГ*ûìè Г*óëþ Г*ГҐГІ!!!\n");}
      printf("\n===========> ГЎ.1) ÑóììГ*: <===========\n");
      for(i=0;i<=n;i++)                    
      {  for(j=0;j<=n;j++)
         if((mas[i][j]<0) && (mas[i][j]%2==0))
         {sum+=mas[i][j];}}
      printf("\nÑóììГ* îòðèöГ*òåëüГ*ûõ ГЁ Г·ГҐГІГ*ûõ Г·ГЁГ±ГҐГ« Г°Г*ГўГ*Г®= %d\n",sum);
      printf("\n===========> ГЎ.2) ÑîðòèðîâêГ*: <===========\n\n"); 
      for(i=0;i<n;i++)  
        {for(j=0;j<m;j++) 
          {for(k=7;k>j;k--)
            if (mas[i][k]<mas[i][k-1])    
            { buf=mas[i][k];
              mas[i][k]=mas[i][k-1];    
              mas[i][k-1]=buf;
            }
           printf("%2d",mas[i][j]);
          }
           printf("\n");  
        } 
      printf("\n");
      system("pause");
      return 0;
}
Добавлено через 3 минуты
это без указателей

Добавлено через 44 секунды
Catstail,

Добавлено через 6 часов 2 минуты
Помогите через 2 часа сдавать надо(
0
Catstail
Модератор
23606 / 11707 / 2046
Регистрация: 12.02.2012
Сообщений: 19,097
26.04.2014, 06:29 4
Поправил нулевой элемент. Остальное некогда

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
58
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
      setlocale(LC_ALL,"rus"); 
      srand(time(0));
      int n,m; 
      printf("Введите размер матрицы n=");   scanf("%d",&n); // Размер матрицы
      printf("Введите размер матрицы m=");   scanf("%d",&m);
      int i,k,j,mas[n][m],sum=0,buf,a=0,s;
      for(i=0; i<n; i++)                 // вводим матрицу
      {for(j=0; j<m; j++)
      {mas[i][j]=rand()%5-2;} }
      printf("\nСгенирированный массив:");  // Вид матрицы
      for(i=0; i<n; i++)
      {     printf("\n");
            for(j=0; j<m; j++)
      {     printf("%2d",mas[i][j]); }}
 
      printf("\n\n===========> a) нулевой элемент: <===========\n");  
 
      s=-1;
      for(i=0;i<n;i++)
        {
         for (j=0;j<m;j++)
           if(mas[i][j]==0)
            {s=i;break;}
         if (s>=0) break;
       }
      if(s >= 0) printf("\nПервый столбец, имеющий нулевой элемент %d\n",s);
      else       printf("\nСтолбцов с элементами равными нулю нет!!!\n");
 
 
      printf("\n===========> б.1) Сумма: <===========\n");
      for(i=0;i<=n;i++)                    
      {  for(j=0;j<=n;j++)
         if((mas[i][j]<0) && (mas[i][j]%2==0))
         {sum+=mas[i][j];}}
      printf("\nСумма отрицательных и четных чисел равно= %d\n",sum);
      printf("\n===========> б.2) Сортировка: <===========\n\n"); 
      for(i=0;i<n;i++)  
        {for(j=0;j<m;j++) 
          {for(k=7;k>j;k--)
            if (mas[i][k]<mas[i][k-1])    
            { buf=mas[i][k];
              mas[i][k]=mas[i][k-1];    
              mas[i][k-1]=buf;
            }
           printf("%2d",mas[i][j]);
          }
           printf("\n");  
        } 
      printf("\n");
      system("pause");
      return 0;
}
0
Vtulhu
423 / 377 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
26.04.2014, 14:24 5
Эта задача всплывает с периодичностью раз в несколько дней... И я её, помнится, уже решал. Что за школота пошла? Раньше их ругали за то, что гуглят домашку, сейчас им даже гуглить лень...
1
chjornoe_solnce
54 / 54 / 47
Регистрация: 16.03.2014
Сообщений: 110
Записей в блоге: 2
26.04.2014, 14:51 6
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <wchar.h>
#include <locale.h>
 
void print_array(unsigned int row, unsigned int col, int array[row][col]) {
    for(unsigned int i = 0, j; i < row; ++i) {
        for(j = 0; j < col; ++j) {
            fwprintf(stdout, L"%2d ", array[i][j]);
        }
        fwprintf(stdout, L"\n");
    }
}
 
void print_row_and_summ(int sum, unsigned int col, int array[col]) {
    for(unsigned int i = 0; i < col; ++i) {
        fwprintf(stdout, L"%2d ", array[i]);
    }
    
    fwprintf(stdout, L"\tСумма отрицательных, чётных равна %d\n", sum);
}
 
int gen_summ(unsigned int size, int array[size]) {
    int sum = 0;
    for(unsigned int i = 0; i < size; ++i) {
        if((array[i] < 0) && !(array[i] & 1)) {
            sum += array[i];
        }
    }
    
    return sum;
}
 
void swap(int *a, int *b) {
    int t = *a;
    *a = *b;
    *b = t;
}
 
void swap_array(unsigned int size, int a1[size], int a2[size]) {
    for(unsigned int i = 0; i < size; ++i) { 
        swap(&a1[i], &a2[i]);
    }
}
 
int main(int argc, char *argv[]) {
    setlocale(LC_ALL, "ru_RU.UTF-8"); 
    srand(time(NULL));
    
    int n, m; 
    
    wprintf(L"Введите размер матрицы n = ");   wscanf(L"%d", &n); // Размер матрицы
    wprintf(L"Введите размер матрицы m = ");   wscanf(L"%d", &m);
    
    int i, k, j, s;
    int mas[n][m];
    int sum = 0;
    int buf;
    int a = 0;
    
    // вводим матрицу
    for(i = 0; i < n; ++i) {
        for(j = 0; j < m; ++j) {
            mas[i][j] = rand() % 5 - 2;
        }
    }
    
    wprintf(L"\nСгенирированный массив: \n");  // Вид матрицы
    print_array(n, m, mas);
    
    wprintf(L"\n\n===========>%-21ls<===========\n", L" a) нулевой элемент: ");
    s = -1;
    for(i = 0; i < n; ++i) {
        for(j = 0; j < m; ++j)
            if(mas[i][j] == 0) {
                s = i;
                break;
            }
        if(s >= 0) break;
    }
    
    if(s >= 0) wprintf(L"\nПервый столбец, имеющий нулевой элемент %d\n", s);
    else wprintf(L"\nСтолбцов с элементами равными нулю нет!!!\n");
    
    wprintf(L"\n===========>%-21ls<===========\n\n", L" б) Сортировка: ");
    int csum;
    for(i = 0; i < n; ++i) {
        sum = gen_summ(m, mas[i]);
        
        for(j = i + 1; j < n; ++j) {
            csum = gen_summ(m, mas[j]);
            
            if(sum > csum) {
                swap_array(m, mas[i], mas[j]);
                sum = csum;
            }
        }
        
        print_row_and_summ(sum, m, mas[i]);
    }
    wprintf(L"\n");
    
    return EXIT_SUCCESS;
}
0
26.04.2014, 14:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2014, 14:51

Найти ошибки в коде
Пример из книги какая здесь ошибка? #include &lt;stdio.h&gt; include&lt;math.h&gt; ...

Найти ошибки в коде
что я не правильно написал: #include &lt;math.h&gt; #include &lt;stdio.h&gt; #include...

Найти ошибки в коде
Здравствуйте, уважаемые, подскажите, пожалуйста, в чем может быть проблема. ...


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

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

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