读书人

送分题解决方法

发布时间: 2012-05-20 16:03:12 作者: rapoo

送分题
完成 例 abcd 输出abcddcba 结果总是不对

C/C++ code
#include<stdio.h>#include<string.h>#define N 20 void main(){    char s[N]={0},*p=s,t[N]={0},*pt=t;    int i,n;    printf("输入字符串:\n");    do    {       gets(s);       n=strlen(s);       if(n*2>=N)          printf("错误,输入字符串过长,无法完成逆序连接:\n");       }    while(n*2>N);    for(i=0;i<=n;i++,p++,pt++)        *pt=*p;    for(i=0;i<=n;i++,p--,pt++)        *pt=*p;    printf("逆序连接后为:\n");    for(i=0;i<=n*2;i++)        printf("%c ",t[i]);    printf("\n");}


[解决办法]
C/C++ code
#include<stdio.h>#include<string.h>#define N 20int main(){    char s[N]={0},*p=s,t[N]={0},*pt=t;    int i,n;    printf("输入字符串:\n");    do    {       gets(s);       n=strlen(s);       if(n*2>=N)          printf("错误,输入字符串过长,无法完成逆序连接:\n");       }    while(n*2>N);    for(i=0;i<n;i++,p++,pt++)        *pt=*p;        --p;   //--p就好    for(i=0;i<n;i++,p--,pt++)        *pt=*p;    printf("逆序连接后为:\n");    for(i=0;i<n*2;i++)        printf("%c ",t[i]);    printf("\n");    return 0;} 

读书人网 >C语言

热点推荐