标题:大家帮我看看代码哪里出问题了,谢谢了
取消只看楼主
饶强c
Rank: 1
等 级:禁止访问
帖 子:15
专家分:7
注 册:2014-7-10
结帖率:50%
 问题点数:0 回复次数:2 
大家帮我看看代码哪里出问题了,谢谢了
这是我写的一个程序,里面大部分都有注释,编译没有错误,可是为什么程序执行起来无论我输入什么字符后他都只输入:termimata,这是怎么回事?
程序代码:
/***********************************************************************************************************************************************

 *file:reverse.c

 *

 *功能:编辑一个源程序,使得程序实现以下功能:

 *(1)连续读入一串字符数据,最大读入长度为200。直到遇到停止标示符才终止。这里终止标示符可以由读者更改,默认为数字0;

 *(2)把这些字符数据逆序输出;

 *(3)输出这些逆序后的字符,而且作为字符串的形式连续输出;

 *

 ***********************************************************************************************************************************************/
#include<stdio.h>
#define max 200  //定义max为最大输入限制;
#define token '0' //定义token为输入终止标志,用户可以改;
#include<ctype.h>
static int getchararray (char array[max],int maxer,char tokener);//子函数声明;
static void reversechararray (char array[max],int n);
static void switchchar (char array[max],int i,int n);
static void printfreversechar (char array[max],int n);      
void main()
{
    int n;
    char array[max];
    printf("这个程序是为了逆序输出用户输入的字符\n");
    printf("请您输入字符,输入时连续输入,空格也算一个字符,用数字字符0作为结束输入的标志\n");
    n=getchararray(array,max,token);
    reversechararray(array,n);
    printfreversechar(array,n);
}

//子函数1:输入子函数。功能:将用户输入的一个个字符一次存储到数组array中,而且要对超量输入和标识符输入进行检测以及做出反应。
//最后返回输入的字符个数n;
static int getchararray (char array[max],int maxer,char tokener)
{
    int n=0;
    char value;
    while(1)
    {
        scanf("%c",&value);
        array[n]=value;
        if(value='0')
            printf("terminata\n");break;
        n++;
        if(n>=max)
            printf("char is too many\n");break;
    }
    return (n);
}


 //子函数2:反转子函数。功能:将用户输入保存在数组array中的有效元素一次转化成逆序输出,无返回值,主要是对数组进行操作;
static void reversechararray (char array[max],int n)
{
    int i;
    for(i=0;i<=n/2;i++)
        switchchar(array,i,n);
} 

//子函数3:交换数组中两个字符子函数。功能:将保存用户输入字符的array中的第i个字符和第n-i-1个字符交换,无返回值,主要是对数组进行操作;
static void switchchar (char array[max],int i,int n)
{
    int x;
    x=array[i];
    array[i]=array[n-i-1];
    array[n-i-1]=x;
}

//子函数4:输出逆序字符子函数。功能:将逆序后的数组输出,要按照字符串的格式输出,无返回值,主要是实现输出操作;
static void printfreversechar (char array[max],int n)
{
    int i;
    for(i=0;i<=n;i++)
        printf("%c",array[i]);
    printf("\n");
}
搜索更多相关主题的帖子: 源程序 file 标示 读者 
2014-07-10 16:32
饶强c
Rank: 1
等 级:禁止访问
帖 子:15
专家分:7
注 册:2014-7-10
得分:0 
回复 2 楼 embed_xuel
刚刚改了过了。不过还是不正确,输入一个字符后按回车键程序就结束了,而且什么输出也没有,也不知道是什么原因。
2014-07-10 16:53
饶强c
Rank: 1
等 级:禁止访问
帖 子:15
专家分:7
注 册:2014-7-10
得分:0 
回复 4 楼 TonyDeng
问题已经找到了。谢谢。
2014-07-11 14:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-433910-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.096960 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved