数组指定元素先输出,其它元素排列在后再进行输出

想表示C第一个输出,D第二个输出,还有其它三个元素自由排列,应该怎么排序,请大家帮忙看看指点

img

int i= 0;
int m= 0;
while(m<n)
{
    if(m==0 && arr[i] == 'C' && arr[(i+1)%n] == 'D')
    {
        printf("CD");
        m=2;
        i+=2;
    }
    else if(m==0)
        i++;
    else
    {
        printf("%c",arr[i%n]);
        i++;
        m++;
    }
}

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/662927
  • 你也可以参考下这篇文章:八数码问题的三种解决方式,其二:深度优先搜索 加自己的一些疑惑
  • 除此之外, 这篇博客: C语言-选择语句和循环语句练习题中的 五、编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 5. 编写代码实现,模拟用户登录情景,并且只能登录三次。
    (只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。
    
    int main()
    {
    	int i = 0;
    	char password[20] = " ";
    	
    	for (i = 0; i < 3; i++)
    	{
    		printf("请输入密码:>>");
    		scanf("%s", password);//数组名本身就是地址,因此此处输入时不需要取地址符号
    
    		if ((strcmp(password, "123456")) == 0)
    		//strcmp()函数,比较两个字符串是否相等,如果相等则返回0
    		{
    			printf("密码正确!登录成功!\n");
    			break;
    		}
    		else
    		{
    			printf("密码错误,请重新输入!\n");
    		}
    	}
    	if (3 == i)
    	{
    		printf("三次密码输入错误,退出程序!");
    	}
    
    	return 0;
    }
    
    

    注意:对比两个字符串是否相同,千万不可直接比较,比如此代码中:if(password == “123456”)这种表示方法是错误的!!!
    必须使用strcmp()函数来比较。


  • 您还可以看一下 韦语洋(Lccee)老师的一机一码加密、被破解自动销毁随时授权回收升级系列视频课程课程中的 演示如何破解一个软件绕过注册机(仅作为后续课程的了解)小节, 巩固相关知识点