Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
11 / 11 / 1
Регистрация: 12.02.2014
Сообщений: 52

Создать массив из 100 чисел и последнему присвоить -1; ошибка в коде

09.07.2014, 13:00. Показов 2444. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В попытке сделать упражнение, в котором нужно было создать массив из 100 чисел и последнему присвоить -1 написал небольшую программку:
C
1
2
3
4
5
6
7
#include <stdio.h>
 
int main()
{
    int ar[100] = {[100] = -1};
    printf("%d\n",ar[100]);
}
Из прочитанного понял, что возможность так присваивать значения появилась в компиляторах поддерживающих С99, я использую visual studio 2008
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.07.2014, 13:00
Ответы с готовыми решениями:

Двумерный массив, пред последнему элементу в столбце присвоить 0, а последнему 1 и так в каждом столбце
Двумерный массив, пред последнему элементу в столбце присвоить 0, а последнему 1 итак в каждом столбце.

Создать массив из 100 чисел
Создать массив из 100 чисел и удалить все нечетные числа

Создать массив кубов первых 100 натуральных чисел
Создать массив кубов первых 100 натуральных чисел и вывести значения элементов массива в виде матрицы 10x10. Я не могу понять Этого ...

32
431 / 385 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
10.07.2014, 18:39
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от andrey-1-9-9-1 Посмотреть сообщение
Может посоветуете что-то, или другой компилятор?
Ну да, ну да. Конечно, компилятор виноват. Больше некому. Покажите код, который пытались написать.
1
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
10.07.2014, 18:49
Цитата Сообщение от andrey-1-9-9-1 Посмотреть сообщение
Делал задание, где нужно создать ф-ю, обрабатывающую массив переменной длины, как оказалось, их мой компилятор не поддерживает тоже
массив переменной длины создается malloc и что-то я не помню C/C++ компилятора, который этого не поддерживает.
2
11 / 11 / 1
Регистрация: 12.02.2014
Сообщений: 52
10.07.2014, 21:45  [ТС]
Я переделал задание по другому, visual studio 2008, завтра снова напишу, сюда пришлю, ато сегодня очень устал

Добавлено через 5 минут
даже такой элементарный код
C
1
2
3
4
5
6
7
#include <stdio.h>
 
int main()
{
    int a = 3, b = 3;
    double my_array[a][b];
}
компилируется с такими ошибками:
1>c:\users\мбптитеканепонтль\documents\v isual studio 2008\projects\prata c exersises\prata c exersises\exersises.c(10) : error C2057: expected constant expression
1>c:\users\мбптитеканепонтль\documents\v isual studio 2008\projects\prata c exersises\prata c exersises\exersises.c(10) : error C2466: cannot allocate an array of constant size 0
1>c:\users\мбптитеканепонтль\documents\v isual studio 2008\projects\prata c exersises\prata c exersises\exersises.c(10) : error C2057: expected constant expression
1>c:\users\мбптитеканепонтль\documents\v isual studio 2008\projects\prata c exersises\prata c exersises\exersises.c(10) : error C2466: cannot allocate an array of constant size 0
1>c:\users\мбптитеканепонтль\documents\v isual studio 2008\projects\prata c exersises\prata c exersises\exersises.c(10) : error C2087: 'my_array' : missing subscript
1>c:\users\мбптитеканепонтль\documents\v isual studio 2008\projects\prata c exersises\prata c exersises\exersises.c(10) : error C2133: 'my_array' : unknown size
1>Build log was saved at "file://c:\Users\мбптитеканепонтль\Documents\Vis ual Studio 2008\Projects\Prata C exersises\Prata C exersises\Debug\BuildLog.htm"
1>Prata C exersises - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
10.07.2014, 22:09
andrey-1-9-9-1, а про return вы не забыли?
0
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
10.07.2014, 22:17
Цитата Сообщение от andrey-1-9-9-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
#include <stdlib.h>
#include <stdio.h>
int main() {
    int arr_size = 10;
    int row=0;
    int col=0;
    int **arr_rows=malloc(arr_size*sizeof(int*));
    int *arr_data=malloc(arr_size*arr_size*sizeof(int));
    memset(arr_data,0,arr_size*arr_size*sizeof(int));
    for(row=0;row<arr_size;row++)
    {
        arr_rows[row]=arr_data+row*arr_size;
    }
    arr_rows[9][9]=99;
    for(row=0;row<arr_size;row++)
    {
        for(col=0;col<arr_size;col++)
        {
           printf("%02d ",arr_rows[row][col]);
        }
        printf("\n");
    }
    free(arr_data);
    free(arr_rows);
    return 0;
}
Вот это элементарный код.

Добавлено через 1 минуту
Цитата Сообщение от S_el Посмотреть сообщение
а про return вы не забыли?
Размерность массива должна быть константой времени компиляции.
1
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
10.07.2014, 22:20
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
Размерность массива должна быть константой времени компиляции.
На некоторых компиляторах компилируется без проблем.А про константу времени компиляции объясните попроще,если не трудно.

Цитата Сообщение от uglyPinokkio Посмотреть сообщение
Вот это элементарный код.
А для чего memset нужен?
0
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
10.07.2014, 22:26
Цитата Сообщение от S_el Посмотреть сообщение
На некоторых компиляторах компилируется без проблем.А про константу времени компиляции объясните попроще,если не трудно.
Либо дефайном, либо константой (не переменной.)
Компилируется компиляторами, поддерживающими C99, к примеру gcc.

Цитата Сообщение от S_el Посмотреть сообщение
А для чего memset нужен?
malloc память не инициализирует.
1
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
10.07.2014, 22:54
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
Размерность массива должна быть константой времени компиляции.
В Си уже не обязательно
недавно обсуждали со ссылкой на стандарт, найду тему скину ссылку

Добавлено через 42 секунды
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
Компилируется компиляторами, поддерживающими C99,
ну вот сам себе и ответил

Добавлено через 3 минуты
Цитата Сообщение от uglyPinokkio Посмотреть сообщение
malloc память не инициализирует.
а для этого есть calloc
https://www.cyberforum.ru/cpp-... 18085.html
0
431 / 385 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
10.07.2014, 22:59
Нет, вот самый элементарный способ. Это не так гибко и умно, как malloc/free, зато молоток надежнее микроскопа.

C
1
2
3
4
#define ROWS 10
#define COLUMNS 20
 
int array[ROWS][COLUMNS];
0
11 / 11 / 1
Регистрация: 12.02.2014
Сообщений: 52
10.07.2014, 23:00  [ТС]
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
#include <stdlib.h>
#include <stdio.h>
int main() {
    int arr_size = 10;
    int row=0;
    int col=0;
    int **arr_rows=malloc(arr_size*sizeof(int*));
    int *arr_data=malloc(arr_size*arr_size*sizeof(int));
    memset(arr_data,0,arr_size*arr_size*sizeof(int));
    for(row=0;row<arr_size;row++)
    {
        arr_rows[row]=arr_data+row*arr_size;
    }
    arr_rows[9][9]=99;
    for(row=0;row<arr_size;row++)
    {
        for(col=0;col<arr_size;col++)
        {
           printf("%02d ",arr_rows[row][col]);
        }
        printf("\n");
    }
    free(arr_data);
    free(arr_rows);
    return 0;
}
Пока для меня этот код не совсем понятен,я не знаю ф-и malloc и memset, но спасибо) буду учить )
0
327 / 230 / 55
Регистрация: 30.05.2014
Сообщений: 682
11.07.2014, 05:01
Цитата Сообщение от ValeryS Посмотреть сообщение
В Си уже не обязательно
Если бы использовался C99 совместимый компилятор, этой темы бы не было .

Цитата Сообщение от ValeryS Посмотреть сообщение
а для этого есть calloc
Я знаю.
0
431 / 385 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
11.07.2014, 06:13
Цитата Сообщение от andrey-1-9-9-1 Посмотреть сообщение
я использую visual studio 2008
http://lurkmore.to/%D0%A1%D0%A1%D0%97%D0%91

http://ru.wikipedia.org/wiki/Tiny_C_Compiler

http://www.sublimetext.com/

http://zeusedit.com/

http://www.carthagosoft.net/twistpad/
1
11 / 11 / 1
Регистрация: 12.02.2014
Сообщений: 52
11.07.2014, 10:02  [ТС]
Спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.07.2014, 10:02

Создать массив из 10 чисел в интервале (0, 100) и вычислить минимум
создать массив из 10 чисел в интервале (0,100) и вычислить min

Создать массив К псевдослучайных чисел на промежутке [0,100] и отразить те элементы
Помогите пожалуйста решить задачу по Pascal. Создать массив К псевдослучайных чисел на промежутке и отразить те элементы, которые...

Создать массив записей, содержащий данные об учениках школы (Ошибка в коде)
создать массив записей, содержащий данные об учениках школы. поля записей: фамилия, имя, класс, номер школы. Распечатать данные об учениках...

Создать массив содержащий случайные числа в диапозоне от [-100, 100]
Далее сформировать новый упорядоченный массив по возрастанию исключая из первого массива числа нарушающие порядок

Создать массив размерностью 100 элементов со значениями от 0 до 100
Создать массив размерностью 100 элементов со значениями от 0 до 100. Вычислить количество простых элементов массива. В Visual Studio....


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru