#include <stdio.h>
#include <conio.h>
void main()
{
int a = 0, b = 0, c = 0, e[10000];
char d[10000];
printf("Enter text: ");
gets(d);
while(d[a] != '\0')
{
if(d[a] != ' ')
{
b++;
}
else
{
e[c]=a;
c++;
}
a++;
}
printf("Number of characters without spaces: %d\n", b);
for(int i=0; i<=c; i++)
printf("Spaces : %d \n", e[i] );
getch();
}
每次我运行程序时,空格的输出都是空格的位置,正如预期的那样,最后是空格:0.如果我把for循环中的条件从i〈=c改为i〈c,问题就解决了。这让我得出结论e[c]=0。我不知道为什么e中的最后一个值会是0,有人能解释一下吗?
1条答案
按热度按时间0yg35tkg1#
首先,这段代码无法编译,因为你有太多的右括号。
第二,你试图直接打印数组e,这会导致打印内存地址而不是实际的元素。你应该循环遍历数组并逐个打印元素: