qq_愿时光安好_04050009
2017-01-20 00:44
#include <stdio.h>
#include <string.h>
int main(void)
{
char word[10];
int length, index, temp;
printf ("please Enter a word:\n");
while (scanf("%s", word)==1)
{
length = strlen(word);//倒序打印
for(index=0; index<=(length+index)/2; index++) //二分 交换
{
temp = word[index];
word[index] = word[length-index];
word[length-index] = temp;
}
printf ("%s", word);
printf ("Do you want to continue?\n");
}
return 0;
}
为什么没交换?
//倒序打印
for(index=0; index<=length/2-1; index++) //二分 交换
{
temp = word[index];
word[index] = word[length-index-1];
word[length-index-1] = temp;
}
1、一个基本的错误为:没有意识到数组的下标是位于[0,length),所以导致出现了后面两个问题:
2、二分交换的结束值的取值有问题。应该是length/2-1,而不是(length+index)/2
3、交换时选择的下标有问题,应该是length-index-1,而不是length-index
讲的不错,受益匪浅,本人自己总结了C语言的基本学习知识,函数语法 数据结构 链表 数组 指针等视频合集给大家提供学习,需要学习的,包括有学习相关问题,可以进入(裙:834597065)交流,里面有众多大佬帮助解决学习、技术问题,只针对C/C++问题哦
Linux C语言结构体
118294 学习 · 162 问题
相似问题