首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

送分题解决方法

2012-05-20 
送分题完成 例 abcd输出abcddcba 结果总是不对C/C++ code#includestdio.h#includestring.h#define N 2

送分题
完成 例 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;} 

热点排行