Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Homachok
0 / 0 / 1
Регистрация: 30.01.2011
Сообщений: 3
#1

Неполный ввод динамического массива - C (СИ)

30.01.2011, 14:31. Просмотров 1504. Ответов 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
#include<stdio.h>
#include<alloc.h>
#include<conio.h>
int main()
{int m,n,i,j,c,d,k;
int *p,*q;
c=0;d=0;
do{puts("vvedite razmeri matrici");
scanf("%d%d", &n,&m);} while(n<1 || m<1);
p=(int*)calloc(n*m,sizeof(int));
q=(int*)calloc(n,sizeof(int));
fflush(stdin);
puts("vvedite matricy posrochno");
for(i=0;i<n;i++)65
    for(j=0;j<m;j++)
    scanf("%d%d", &p[i*n+j]);
for(i=0;i<n;i++)
    {for(j=0;j<m;j++)
        {if(p[i*n+j]%2==0) c++;
        else d++;
        if(c>d) q[i]=2;
        else q[i]=1;}
    }
c=0;d=0;
for(k=0;k<n;k++)
    {if(q[k]==2) c++;
    else d++;}
puts("pervaya matritsa");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
printf(" %d", p[i*m+j]);
puts("vtoraya matritsa");
for(k=0;k<n;k++) printf(" %d ",*(q+k),q+k);
printf("\nchislo chetnih elementov %d,nechetnih %d ", c,d);
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2011, 14:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Неполный ввод динамического массива (C (СИ)):

Ввод/вывод динамического массива
нужно ввести массив и вывести его на экран. размерность и массив вводит, вывод...

Ввод из файла размеров динамического массива
Напишите или скиньте пример кода где из файла вводятся размеры двухмерного...

Реализовать через отдельные функции ввод динамического массива и нахождение его минимального элемента
Добрый день, необходимо реализовать через отдельные функции ввод динамического...

Функции ввода/вывода двумерного массива - Тип элементов массива неполный
Доброго времени суток! // Автоматический ввод двумерного массива void...

Ввод и вывод динамического массива. "Ошибка C2109: для индекса требуется массив или указатель"
Никак не могу доделать программу,а именно вывод массива на экран,массив...

Создание динамического массива
Доброго времени суток. Как правильно создать что-то подобное? Чё-т не очень...

1
Nameless One
Эксперт С++
5785 / 3434 / 351
Регистрация: 08.02.2010
Сообщений: 7,448
30.01.2011, 14:46 #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
35
36
37
38
39
40
41
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    size_t n, m;
    int** matrix;
    size_t i, j;
        
    puts("Input matrix dimensions:");
    scanf("%u %u", &n, &m);
    if((matrix = (int**) malloc(n * sizeof(int*))) == NULL)
    {
    fputs("Can't allocate memory\n", stderr);
    exit(1);
    }
    for(i = 0; i < n; ++i)
    if((matrix[i] = (int*) malloc(m * sizeof(int))) == NULL)
    {
        fputs("Can't allocate memory\n", stderr);
        exit(1);
    }
 
    for(i = 0; i < n; ++i)
    for(j = 0; j < m; ++j)
    {
        printf("[%02u][%02u] > ", i, j);
        scanf("%d", &matrix[i][j]);
    }
    
    puts("Let's print our matrix out:");
    for(i = 0; i < n; ++i, putchar('\n'))
    for(j = 0; j < m; ++j)
        printf("%-6d", matrix[i][j]);
 
    for(i = 0; i < n; ++i)
    free(matrix[i]);
    free(matrix);
    
    exit(0);
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2011, 14:46
Привет! Вот еще темы с решениями:

Qsort динамического массива
Что я делаю не так? int cmp (const void *a, const void *b){ return...

Сортировка динамического массива
Дана такая задача: Массив (размерности вводятся с клавиатуры) целочисленный -...

Уничтожение динамического массива
Пишу на чистом C. Создаю динамический массив: double *x = malloc(n *...

Освобождение динамического массива
Добрый вечер, есть код, создаёт указатель *text, дальше в switch case '2'...


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

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

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