C:不在...里面输入“for”语句

时间:2016-11-09 17:36:56

标签: c loops for-loop do-while

我目前正在学习编程,我不知道为什么我的代码没有进入do内部的for。

任何想法或帮助都会非常有用!

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>  

void swap(char *num1, char *num2) {
    char temp;
    temp = *num1;
    *num1 = *num2;
    *num2 = temp;
}

int main()
{
    int l,i;
    char s[100];
    bool swapped;

    scanf("%s", s); 
    l=strlen(s);

    do
    {
        swapped = 0;
        for(i=1;i==(l-1);i++)
        {
            if(s[i-1] > s[i])
            {
                swap(&s[i-1],&s[i]);
                printf("%s\n",s);
                swapped = 1;
            }    
        }
    }while(swapped);

    // printf("%s\n",s);

    return 0;
}

1 个答案:

答案 0 :(得分:1)

你在for循环中的比较是检查我是否等于字符串中的字符。如果这种情况属实,你只会进入for循环。

您可能想要输入for循环,然后继续增加i检查以查看它是否小于或等于字符串中的字符。

示例代码

char * str = "Hello"
for(int i = 0; i <= strlen(str) - 1; i++)
{
    printf("%c", str[i]);
}

预期输出

Hello