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

Не могу найти ошибку (массив с чётными индексами) - C++

Восстановить пароль Регистрация
 
niksdfw
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 19
15.11.2009, 18:49     Не могу найти ошибку (массив с чётными индексами) #1
Задача:

Введите с клавиатуры данные в массив целого типа, а затем выведите на экран значения элементов массива с чётными номерами(индексами).


по видимому не правильно задаю массив если не известно кол-во его элементов и оно определяеться пользователем.



Моё решение:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
void main()
{
int i, j, k;
 
int mas[k];
puts("vvedute coluchestvo elementov v massuve: ");
scanf("%d",&k);
 
puts("Enter massuve: ");
for (i=0; i<k; i++)
scanf("%d", &mas[i]);
 
puts("elementi s chetnim indexom");
for (i=0; i<k; i++)
if(i%2==0)
printf("%d",&mas[i]);
Спасибо за помощь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2009, 18:49     Не могу найти ошибку (массив с чётными индексами)
Посмотрите здесь:

C++ Удалить из массива все элементы с чётными индексами
C++ Массив указателей не могу понять ошибку
C++ Не могу найти ошибку, одномерный массив
Функция, которая вводит в массив числа, сначала с чётными, а потом с нечётными индексами C++
C++ Одномерный массив. Найти произведение элементов с четными индексами
C++ Не могу найти ошибку. (Массив объектов)
C++ Заполнить элементами с нечётными индексами, а затем - с чётными
Вывести на консоль элементы заданного целочисленного массива с чётными индексами C++
C++ Найти разницу между суммой элементов массива с чётными индексами и суммой элементов, индексы которых кратны 5
C++ Программа вычисления суммы "при чередовании отрицательных и положительных элементов" с чётными индексами
Вывести на консоль элементы массива с чётными индексами C++
Упорядочить строки заданной матрицы с нечётными индексами по убыванию, с чётными - по возрастанию C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 18:58     Не могу найти ошибку (массив с чётными индексами) #2
вам надо динамически память выделять
Monte-Cristo
 Аватар для Monte-Cristo
2807 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
15.11.2009, 19:00     Не могу найти ошибку (массив с чётными индексами) #3
Я бы тоже выдал ошибку

1. Размерность массива - переменная. Должна быть константа. В противном случае, необходимо выделять область памятя для массива.
2. Предположим, что k-у нас константа, или используется компилятор GCC - ты задаешь значение k, лишь после создания массива размера k.
3. В printf() брать адресс & не надо

Вот код программы
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
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int *A, n, i;
    
    printf("Input size of Array -> ");
    scanf("%d", &n);
    
    A = (int*)malloc(n*sizeof(int));
    
    for (i=0; i<n; i++)
    {
        printf("Input A[%d]=", i);
        scanf("%d", A+i);
    }
    
    for (i=0; i<n; i+=2)
        printf("Input A[%d]=%d\n", i, A[i]);  
    
    free(A);
    return 0;
}
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
15.11.2009, 19:01     Не могу найти ошибку (массив с чётными индексами) #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
#include <stdio.h>
#include <stdlib.h>
int main(void)
{   
        int i, j, k;
 
        puts("vvedute coluchestvo elementov v massuve: ");
        scanf("%d",&k);
 
        int *mas =(int *)   calloc(k, sizeof(int));
 
 
        puts("Enter massuve: ");
        for (i=0; i<k; i++)
            scanf("%d", &mas[i]);
 
        puts("elementi s chetnim indexom");
        for (i=0; i<k; i++)
            if(i%2==0)
                printf("%d",mas[i]);
 
    system("pause");
    return 0;
}
niksdfw
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 19
15.11.2009, 22:16  [ТС]     Не могу найти ошибку (массив с чётными индексами) #5
спасибо огромное, парни

Добавлено через 8 минут
разьясните пожалуйста строчку
int *mas =(int *) calloc(k, sizeof(int))
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
16.11.2009, 05:56     Не могу найти ошибку (массив с чётными индексами) #6
Цитата Сообщение от niksdfw Посмотреть сообщение
спасибо огромное, парни

Добавлено через 8 минут
разьясните пожалуйста строчку
int *mas =(int *) calloc(k, sizeof(int))
динамическое выделение памяти. k - количетсво ячеек памяти, размера sizeof(int)
в результате получаем указатель типа инт на выделенный объём памяти.
Yandex
Объявления
16.11.2009, 05:56     Не могу найти ошибку (массив с чётными индексами)
Ответ Создать тему
Опции темы

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