#include <stdio.h>
#include <string.h>
int main(void)
{
char alpha[26] = { '0' };
char nl;
while (alpha != '0'){
scanf("%c", &alpha);
scanf("%c", &nl);
printf("the character is %c\n", alpha);
}
int i, j, size;
for (i=0;i<size;i++){
for (j=i;j<size;j++){
if (alpha[i]<alpha[j]){
Swap(&alpha[i], &alpha[j]);
}
}
}
printf("%s", alpha);
return 0;
}
我收到错误&#34;指针和整数之间的比较&#34;在我的while循环中。我希望从文本文件中读取字母表中的每个字母,并在它到达&#34; 0&#34;时停止。在列表的末尾。然后它将按字母顺序排序,从z,y,x开始。等。我怎么写这个,所以它停在&#34; 0&#34;不使用整数? 谢谢你的帮助
答案 0 :(得分:0)
alpha [26]
是一个包含26个字符的数组,您的while
循环总是会覆盖数组的第一个元素(scanf("%c", &alpha);
会覆盖每个alpha
的第一个元素迭代循环),整个代码将无法正常工作。要访问数组的元素,您可以使用指针或索引,索引更容易,尝试for
循环
int i;
for (i = 0; i<26 ; i++)
{
if(alpha[i] != '0')
{
scanf("%c", &alpha[i]);
printf("the character is %c\n", alpha[i]);
}
}
使用指针访问数组请参阅Can i use pointer in scanf to take input in an array?