0

对于我的任务,我必须在屏幕上打印数字并将它们解码为特定的字母。我在这段代码中只使用字母 al 只是为了保持简单,以便我能理解它。

我遇到的问题是,例如,当我输入与数组 a 的第一个条目相对应的数字 0 时,它将取出 a 并打印 bl。

如果我输入数字 0,我该如何做到这一点,代码只会在屏幕上打印一个?

#include <stdio.h>

int main()
{
char code[] = "abcdefghijkl";
int i, j, k;
printf("how many letters does your code contain?: ");
scanf("%d", &j);
for(i=0; i<j; ++i){
    printf("enter a number between 0 and 11\n");
    scanf("%d", &k);
    printf("%s\n", &code[k]);
}
}
4

3 回答 3

4

你只打印那个位置的字符,所以改变

printf("%s\n", &code[k]); 

printf("%c\n", code[k]);

您还应该检查您读入的值是否k>= 0 && < 11 ,否则您将访问超出其边界的数组。

于 2012-04-11T09:17:38.390 回答
0

printf("%c\n", code[k]); 代替printf("%s\n", &code[k]);

于 2012-04-11T09:22:52.930 回答
0

%s格式说明符用于打印字符串,您需要使用%c将字符打印到屏幕的说明符。

于 2012-04-11T09:18:54.850 回答