赞
踩
我发现这个题目都是用指针来解的,所以我想用数组也来搞一个,给像我这样的初学者们提供一点思路,代码如下。
- #include <stdio.h>
- int main()
- {
- int j,i;
- char z,m,c[80];
- printf("请输入需要处理的字符串:");
- gets(c);
- for(i=1;c[i]!='\0';i++)
- if(c[i]>m)
- {
- m=c[i];
- j=i;
- }
- for(;j>0;j--)
- {
- z=c[j];
- c[j]=c[j-1];
- c[j-1]=z;
- }
- printf("处理后的字符串为:");
- puts(c);
- }
解释:我们可以先用scanf函数获取字符串,存至c数组,然后用循环找出ASCII码值最大的字符,将其下标保存至j,最后再用for(;j>0;j--)使c[j]之前的都向后移动一个(与c[j]交换来实现),最后将数组puts输出。其实感觉也和那个指针的思路差不多。
效果图:
以上都是我的看法,可能会有些表述不对的地方,希望能够谅解且给出纠错,感谢观看!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。