Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Инициализация двумерных массивов.



Читайте также:
  1. Ввод и вывод элементов двумерных массивов
  2. Задание 1. Объявление и инициализация одномерных массивов.
  3. Задание 3. Массивы массивов.
  4. Задание 5. Приведение типов массивов.
  5. Инициализация массивов
  6. Инициализация указателей

Для инициализации двумерного массива следует при объявлении массива в фигурных скобках записать список констант, значения которых присваиваются элементам массива.

Например, массив table [3][4] может быть инициализирован так:

 

int table [3][4] = {

{5,8,9,7},

{3, 6, 4, 7},

{6, 2, 1, 0}

};

Массив table будет заполнен так:

       
       
       

 

Если констант в списке будет указано меньше, чем элементов массиве, то оставшиеся значения элементов массива не определены. Например, при инициализации массива table следующим образом:

 

int table [3][4] = {

{5,8 },

{3, 6, 4, 7},

{6, 1, 0}

};

Массив table будет заполнен так:

 

       
       
       

 

В пустых клеточках значения элементов массива не определены.

 

Пример 1. Пусть в маленькой гостинице имеется 10 комнат. Известны номера комнат: 102,107,109,112,115,116,123,125,127,130 и вместимость каждой комнаты соответственно: 12,43,23,12,20,15,16,23,12,15. Рассмотрим задачу поиска и вывода списка комнат, вместимость которых составляет не меньше значения, вводимого с клавиатуры.

 

#include <stdio.h>

 

//объявление двумерного массива room. Значения элементов первой строки массива

//представляют собой номера комнат,

//а значения элементов второй строки – вместимость комнат

 

int room[2][10]= {

{102,107,109,112,115,116,123,125,127,130},

{12,43,23,12,20,15,16,23,12,15}

};

 

void main (void)

{

int i,j, flag=0,num;

 

//вывод вместимости всех комнат гостиницы

puts("Вместимость всех комнат гостиницы:");

 

for(j=0; j<10; j++)

printf("Комната #%d рассчитана на %d мест\n",room[0][j],room[1][j]);

 

puts("Введите минимальное необходимое количество мест");

scanf("%d",&num);

 

// поиск списка комнат с заданной вместимостью

 

for(j=0; j<10; j++)

if(room[1][j]>=num)

{flag=1;

printf("Комната #%d рассчитана на %d мест\n",room[0][j],room[1][j]);

}

 

if(flag==0)

puts("Комнат с таким количеством мест нет");

}

 

 

Пример 2. По введенным числу, месяцу и году определить порядковый номер дня в году. Например, если ввести 10 - это число, 4 – это месяц, 2001 – это год, то программа должна вывести:

В 2001 году это день имеет номер 100.

 

Для решения этой задачи используется двумерный массив, имеющий две строки и 13 элементов в каждой строке. В первую строку занесены значения количества дней в каждом месяце не високосного года, а во вторую - то же для високосного года. В строке 13 элементов, а на 12, т.к. месяцы года нумеруются, начиная с первого, а индексы элементов массива начинаются с нуля.

 

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

 

void main(void)

{

clrscr();

int year,month,day,i,k;

 

//объявление и инициализация массива

int tab_days[2][13]={

{0,31,28,31,30,31,30,31,31,30,31,30,31},

{0,31,29,31,30,31,30,31,31,30,31,30,31}

};

 

puts("Введите число, месяц и год");

scanf("%d %d %d",&day,&month,&year);

 

// определим, високосный ли год

k=year%4==0 && year%100!=0 || year%400 ==0;

if(k==1)

puts("Год високосный");

else

puts("Год не високосный");

 

// контроль правильности ввода месяца

if(month<1 || month >12)

{

puts("Неверно введен месяц");

exit(-1); //завершение работы программы при ошибке

}

 

// контроль правильности ввода числа

if(day <1 || day >tab_days[k][month])

{

puts("Неверно введен день");

exit(-1);

}

 

// цикл по номеру месяца

for(i=1; i<month; i++)

day+= tab_days[k][i];

 

printf("В %d году этот день имеет номер %d\n",year, day);

getch();

}

 


Дата добавления: 2015-07-11; просмотров: 89 | Нарушение авторских прав






mybiblioteka.su - 2015-2024 год. (0.007 сек.)