求大神,哪里錯了?
#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;
}
為什么沒交換?
2017-01-20
//倒序打印
for(index=0; index<=length/2-1; index++) ? ? ? ?//二分 交換?
{
????temp = word[index];
????word[index] = word[length-index-1];
????word[length-index-1] = temp;
}
1、一個基本的錯誤為:沒有意識到數(shù)組的下標(biāo)是位于[0,length),所以導(dǎo)致出現(xiàn)了后面兩個問題:
2、二分交換的結(jié)束值的取值有問題。應(yīng)該是length/2-1,而不是(length+index)/2
3、交換時(shí)選擇的下標(biāo)有問題,應(yīng)該是length-index-1,而不是length-index
2020-11-09
講的不錯,受益匪淺,本人自己總結(jié)了C語言的基本學(xué)習(xí)知識,函數(shù)語法 數(shù)據(jù)結(jié)構(gòu) 鏈表 數(shù)組 指針等視頻合集給大家提供學(xué)習(xí),需要學(xué)習(xí)的,包括有學(xué)習(xí)相關(guān)問題,可以進(jìn)入(裙:834597065)交流,里面有眾多大佬幫助解決學(xué)習(xí)、技術(shù)問題,只針對C/C++問題哦