Пояснить работу кода - C (СИ)
Формулировка задачи:
Составить вектор из номеров столбцов, где все элементы являются числовыми палиндромами.
Хотел бы попросить что бы пояснили работу кода, последовательность действий.
За ранее спасибо.
#include <stdio.h> #include <conio.h> int main() { int mass[100][100]; int result[100]; int l, h; int num=0; printf("vvedite razmery massiva: "); scanf("%d%d", &h, &l); printf("vvedite elementy massiva:\n"); for(int i=0; i<h; i++) { for(int j=0; j<l; j++) { scanf("%d", &mass[i][j]); } } for(int i=0; i<l; i++) { bool flag=true; for(int j=0; j<h; j++) { int tmp=0, ch=mass[j][i]; while(ch>0) { tmp*=10; tmp+=ch%10; ch/=10; } if(tmp!=mass[j][i]) { flag=false; break; } } if(flag) { result[num]=i+1; num++; } } if(num>0){ printf("iz palinomov sostoyat stolbtsy: "); for(int i=0; i<num; i++) printf("%d ", result[i]); } else printf("stolbtsov ne naydeno."); _getch(); return 0; }
Решение задачи: «Пояснить работу кода»
textual
Листинг программы
#define PERIPH_BASE ((uint32_t)0x40000000) #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) #define GPIOC_BASE (APB2PERIPH_BASE + 0x1000) #define __I volatile const #define __O volatile #define __IO volatile typedef struct { __IO uint32_t CRL; __IO uint32_t CRH; __IO uint32_t IDR; __IO uint32_t ODR; __IO uint32_t BSRR; __IO uint32_t BRR; __IO uint32_t LCKR; } GPIO_TypeDef; #define GPIOC ((GPIO_TypeDef *) GPIOC_BASE)
Объяснение кода листинга программы
- Объявляется макрос PERIPH_BASE, который равен ((uint32_t)0x40000000). Это базовый адрес для периферийных устройств.
- Затем объявляется макрос APB2PERIPH_BASE, который равен (PERIPH_BASE + 0x10000). Это базовый адрес для периферийных устройств, подключенных к APB2.
- Далее объявляется макрос GPIOC_BASE, который равен (APB2PERIPH_BASE + 0x1000). Это базовый адрес для GPIO порт C.
- Затем определяются макросы I, O и __IO, которые описывают типы регистров (volatile const, volatile и volatile).
- Создается структура GPIO_TypeDef, которая содержит семь полей: CRL, CRH, IDR, ODR, BSRR, BRR и LCKR. Все они имеют тип uint32_t и являются регистрами GPIO.
- Наконец, определяется макрос GPIOC, который равен ((GPIO_TypeDef *) GPIOC_BASE). Это указатель на структуру GPIO_TypeDef, которая представляет GPIO порт C.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д