第三篇!这篇内容我也琢磨了很久,请教了朋友!
话不多说,让我们先看看题目
题目内容:
将一个长度为10的字符数组a中的元素按逆序重新存放。例如:原来顺序为abcdefg,逆序存放后元素顺序为gfedcba。
输入格式:
gets(a);
输出格式:
puts(a);
输入样例:
abcdefg
输出样例:
gfedcba
时间限制:500ms内存限制:32000kb
刚开始我的脑子想着很简单嘛,可是写了以后才发现我真是大错特错了!
首先这个确定的字符数组的长度。但是!!!并没有确定输入长度(可以比字符数组短一点点啦)。
对于小白来说,肯定是会无处下手的呀。别慌!别慌!办法帮大家问到了。这里我们可以使用int len=strlen(字符串名称)来确定字符串的长度。
当然这道题也强调了使用puts输出,这就是要等所有字符全部换好位置才输出了呀。所有要将puts放置在循环外。
现在,废话不多说了,让我们上代码:
#include<stdio.h>
#include<string.h>
#define N 10
int main()
{
char a[N];
int i;
char temp;//临时的字符地址
gets(a);
int len=strlen(a); //确定十位中输入的字符长度
for(i=0;i<len/2;i++)//取中间开始循环 ,将字符组分为两部分,两部分从最边上开始互换
{
temp=a[i];//临时存放
a[i]=a[len-i-1];
a[len-i-1]=temp;
}
puts(a);
}
输出结果展示:
如果有什么意见可以提出来~,大家一起讨论一起进步!