我在代码中犯了什么错误?它没有给出任何输出。这个问题在image中给出。我正在使用ASCII变量集来打印字母和数字集。
#include <ctype.h>
#include <stdio.h>
#include <string.h>
int main()
{
int i, j, temp, t, s, e;
char test[20], start = 'a', end = 'z';
scanf("%s", test);
for (i = 0; i < strlen(test) && (test[i] == '-'); i++);
for (; i < strlen(test););
{
if (isalpha(test[i]) != 0)
{
start = test[i];
for (; (i < strlen(test)) && (isdigit(test[i]) == 0); i++);
}
end = test[i - 1];
temp = end - start + 1;
if (isdigit(test[i]) != 0)
{
s = test[i];
for (; (i < strlen(test)) && (isalpha(test[i]) == 0); i++);
}
e = test[i - 1];
t = e - s + 1;
for (j = 0; j < temp; ++j, start++)
{
printf("%c", start);
}
printf("\n");
for (j = 0; j < t; ++j, s++)
{
printf("%c", s);
}
printf("\n");
}
return 0;
}
答案 0 :(得分:1)
您已将;
放在for
循环的末尾,这就是loop
的主体未按预期执行的原因。
Effect of semicolon after 'for' loop
for (i = 0; i < strlen(test) && (test[i] == '-'); i++);
for (; i < strlen(test););
for (; (i < strlen(test)) && (isdigit(test[i]) == 0); i++);
for (; (i < strlen(test)) && (isalpha(test[i]) == 0); i++);
从每个;
循环的结尾删除for
。
您还应该删除内部for循环,如外部for
循环中已提到的那样。 请正确检查每个for
循环的正文。