我试过写一个程序,它获得了一个人输入的最高性格。我制作了一个程序,它可以获得最高数量的工作,没有任何问题但是字符不起作用。这是我的代码:
#include <stdio.h>
#include <string.h>
int main(int argc, const char * argv[]) {
char characters[5];
char highest = "a";
printf("Please enter five characters: \n");
for (int i = 0; i <= 4; i+=1) {
scanf("%c", characters[i]);
}
printf("These are the characters you entered: ");
for (int i = 0; i <= 4; i+=1) {
printf("%c ", characters[i]);
}
for (int i = 0; i <= 4; i+=1) {
if (characters[i] > highest) {
highest = characters[i];
}
}
printf("\nThe highest character is %c", highest);
}
我做错了什么?
答案 0 :(得分:5)
您尝试将字符串文字"a"
转换为char
。你应该使用一个字符文字。
char highest = "a";
//should be
char highest = 'a';
此外,scanf
需要一个指针来存储读取的结果。
scanf("%c", characters[i]);
//should be
scanf("%c", &characters[i]);
答案 1 :(得分:3)
char highest = "a";
不正确,应该char highest = 'a';
进行编译。
答案 2 :(得分:0)
两个问题:
字符文字用单引号指定,而不是双引号。所以这个:
def byteResponse = holder.getNodeValue("//*:operationStatus//*:messageText")
// since there is only one tag named "messageText" in the entire response, you could use this also
def byteResponse = holder.getNodeValue("//*:messageText")
应该是:
char highest = "a";
此外,char highest = 'a';
%c
格式说明符需要指向scanf
的指针,但您需要将char
传递给它。
所以这个:
char
应该是:
scanf("%c", characters[i]);
这应该解决你的问题。
答案 3 :(得分:-1)
还有一个潜在的问题尚未得到解决。在C中,保证代表数字的字符(&#39; 0&#39;,&#39; 1&#39;,...,&#39; 9&#39;)是有序的,但没有这样的保证字母(&#39; a&#39;,&#39; b&#39;,...)按任何特定的顺序。< / p>