Write a program that lets you know if you can have a key or not, based on your role at the school.
First ask for the user’s role at the school. They can be a student, administrator, or a teacher. (And remember that capitalization is important! ‘Student’ is not the same as ‘student’.)
Example 1: Administrator or Teacher
For example, if this was the input:
Are you an administrator, teacher, or student?: teacher
This should be the output:
Administrators and teachers get keys!
Example 2: Student
And if this was the input:
Are you an administrator, teacher, or student?: student
This should be the output:
Students do not get keys!
(Note: You should also be able to handle a situation where the user enters a value other than administrator, teacher or student and tell them they must be one of the three choices!)
Example 3: Other
If they input anything else:
Are you an administrator, teacher, or student?: secretary
This should be the output:
You can only be an administrator, teacher, or student!
Немного теории:
Любой доступ к элементу массива, осуществляемый с помощью операции индексирования может быть осуществлен при помощи указателей.
Имя массива хранит адрес его нулевого элемента. Поэтому адрес любого i элемента массива можно представить как (x+i), где x — указатель на первый элемент массива. А его значение как *(x+i)
Подобные операции верны для любого типа и размера массивом, так как при прибавлении к указателю целого числа, он «сдвигается» не на i байтов, а на i элементов этого типа.
В данном задании:
int a[]= {7,8,9} — инициализация массива. По сути, это описание и присваивание значения одновременно. После выполнения этой строчки: a[0]=7; a[1]=8; a[2]=9 — массив из трех элементов, нумерация с нуля.
int *b=a — Эта строчка переводится как «создаем переменную b типа указатель на целое и присваем ему адрес нулевого элемента массива».
*(b+2)=b+1 — очень странная запись.
*(b+2) равносильно a[2] — значение последнего элемента данного массива. Переменная b содержит целое число, которое является адресом нулевого элемента массива. b+1 — указатель «сдвигается на 1 элемент вправо», т.е (b+1) — адрес первого элемента массива.
То есть данная запись означает, что в последний элемент массива(a[2] в данном случае) записывается адрес первого элемента массива(a[1] в данном случае).
b[1] — такая запись указателя с индексом равносильна a[1] — значению первого элемента массива.
В итоге: b[1] <=> a[1]=8
Примечание:
Изначально ваша программа не выполниться, так как запись int b*=a — неверная(правильно int *b=a)