Хм ... теперь, когда вам сказали, как решить проблему, вот как я написал бы код:
location pick(void){ // generates a random location
location get;
get.x = rand() % FIELD_SIZE + 1;
get.y = rand() % FIELD_SIZE +'a';
return get;
}
Чисто теоретически, это не совсем переносимо - буквы не обязательно должны быть смежными. В действительности, единственное известное место, где они не являются смежными, это EBCDIC, и оно непрерывно в диапазоне, который вы используете. Однако, если вы действительно обеспокоены этим, вы можете сделать что-то вроде:
location pick(void){ // generates a random location
static char letters[] = "abcdef";
location get;
get.x = rand() % FIELD_SIZE + 1;
get.y = letters[rand() % FIELD_SIZE];
return get;
}