Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <calloc.h>
void main(void)
{
char *s; // Объявление строки указателем
int i, k;
clrscr();
puts(" Vvedi stroky"); gets(s);
k=strlen(s);
s=(char*)calloc(k,sizeof(char)); // Захват памяти для строки длиной k
for (i=0; i<(int)(k/2); i++)
if(s[i]!=s[k-i-1])
{
puts("\t\a NO!!");
getch();
free(s); // Освобождение памяти
return;
}
puts("\t\a YES - Pаlindrom!");
getch();
free(s); // Освобождение памяти
}
Пример динамического размещения одномерного массива
Ввести массив действительных чисел размером n и вывести на экран.
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<alloc.h>
void main()
{
int i,n;
float *a;
puts(“\n Введите размер массива n:”);
scanf(“%d”,&n);
printf(“\n Свободная память -%d”,coreleft());
a=(float*)calloc(n,sizeof(float)); // Захват памяти
printf(“\n Введите элементы массива a: \n”);
for(i=0; i<n; i++)
scanf(“%f”,(a+i)); // scanf(“%f”,&a[i]);
printf(“\n Массив a \n”);
for(i=0; i<n; i++)
printf(“ %6.3f \n“, a[i]);
printf(“\n Память после захвата -%d”,coreleft());
free(a); // Освобождение памяти
getch();
}
Пример динамического размещения двухмерного массива
...
void main(void)
{ int i,j,n,m;
float **a;
puts(“\n Введите n,m:”);
scanf(“%d %d”,&n,&m);
printf(“\n Свободная память -%d”,coreleft());
a=(float **)calloc(n,sizeof(float*)); // Захват памяти
for(i=0; i<n; i++)
a[i]=(float *)calloc(m,sizeof(float));
...
for(i=0; i<n; i++) free(a[i]); // Освобождение памяти
free(a);
getch();
}
Варианты индивидуальных заданий
1. В вещественной матрице размером NxN найти максимальный и минимальный элементы. Переставить строки, в которых они находятся. Если они находятся в одной строке, выдать об этом сообщение.
2. Квадратную вещественную матрицу А размером N возвести в K-ю степень, т.е. вычислить: А1=А, А2=А·А, А3=А2·А и т.д.
3. Дана вещественная матрица размером NxM. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент (один из них) оказался в верхнем левом углу.
4. Дана вещественная матрица размером NxM. Упорядочить ее строки по возрастанию наибольших элементов в строках матрицы.
5. Задан массив размером NxN, состоящий из 0 и 1. Повернуть элементы массива на 900 по часовой стрелке.
6. Элемент матрицы назовем седловой точкой, если он наименьший в своей строке и наибольший (одновременно) в своем столбце (или наоборот, наибольший в своей строке и наименьший в своем столбце). Для заданной целочисленной матрицы размером NxM напечатать индексы всех ее седловых точек.
7. Дана вещественная матрица размером N, все элементы которой различны. Найти скалярное произведение строки, в которой находится наибольший элемент матрицы, на столбец с наименьшим элементом.
8. Определить, является ли заданная целочисленная квадратная матрица размером N ортонормированной, т.е. такой, в которой скалярное произведение каждой пары различных строк равно 0, а скалярное произведение каждой строки на себя равно 1.
9. Определить, является ли заданная матрица N-го порядка магическим квадратом, т.е. такой, в которой сумма элементов во всех строках и столбцах одинакова.
10. Дана целочисленная матрица размером N. Найти сумму наименьших элементов ее нечетных строк и наибольших элементов ее четных строк.
11. Дана действительная квадратная матрица порядка N. Рассмотрим те элементы, которые расположены в строках, начинающихся с отрицательного элемента. Найти сумму тех из них, которые расположены соответственно ниже, выше и на главной диагонали матрицы.
12. Дана вещественная квадратная матрица порядка N. Получить целочисленную квадратную матрицу, в которой элемент равен 1, если соответствующий ему элемент исходной матрицы больше элемента, расположенного на главной диагонали, и равен 0 в противном случае.
13. Дана квадратная целочисленная матрица порядка N. Упорядочить элементы в строках по возрастанию.
14. Дана действительная квадратная матрица порядка N. Найти сумму и произведение элементов, расположенных в заштрихованной части матрицы, см. рисунок «а».
15. То же, см. рисунок «б».
16. То же, см. рисунок «в».
17. Дана действительная квадратная матрица порядка N. Найти наименьшее и наибольшее из значений элементов, расположенных в заштрихованной части матрицы, см. рисунок «а».
а б в
18. То же, см. рисунок «б».
19. То же, см. рисунок «в».
20. Получить целочисленную квадратную матрицу порядка N, элементами которой являются числа 1, 2, 3, …, расположенные в ней по спирали.
Контрольные вопросы
1. Укажите способы декларирования двухмерных массивов.
2. Формы (способы) работы с элементами двухмерного массива.
3. Что такое указатель?
4. Операция sizeof().
Дата публикования: 2015-09-17; Прочитано: 825 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!