2016-12-31 3 views
0

Я новичок в C,Создание массива символов в C

Итак, я попытался сделать программу, присваивающую оценки в соответствии с отметками студентов. мне нужно сделать массив символов с первым слотом со ссылкой на первый студент .. и т.д.

Инициализация была простой

char grade[n]; 

Где п число студентов

для присвоения значений I выполнило условие, сравнивающее метки в цикле, и если условие выполнено, этот вид заявления выполнен:

grade[i] == 'B'; 

Для вызова t он оценил в конце, я использовал это:

printf("%c", &grade[i]); 

Где «i» - это переменная управления контуром отображения.

В конце были отображены странные символы. Каков правильный способ создания массива символов и вызова отдельных «слотов»?

+4

'==' не является оператором присваивания. –

+1

'& grade [i]' получает * адрес * индекса 'i' в массиве, который, вероятно, будет действительно большим, бесполезным числом. Просто используйте 'grade [i]' для доступа к символу в индексе 'i' массива. – Purag

+0

Возможный дубликат [Указатели в C: когда использовать амперсанд и звездочку?] (Http://stackoverflow.com/questions/2094666/pointers-in-c-when-to-use-the-ampersand-and- asterisk) – Purag

ответ

4

Изменить этот

printf("%c", &grade[i]); 

в

printf("%c", grade[i]); 

И он должен работать, как вы ожидаете.

+0

@ user2217482 Можете ли вы вставить всю свою программу в вопрос? Мы можем посмотреть другие проблемы. – Sush

3

Вы печатаете адрес указателя, не используйте & в печати.

1

Просто используйте printf («% c», класс [i]) без адреса «&». Вы хотите напечатать символ по индексу i, а не по адресу этого символа.

Смежные вопросы