| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 650 人关注过本帖
标题:大家帮我看看代码哪里出问题了,谢谢了
只看楼主 加入收藏
饶强c
Rank: 1
等 级:禁止访问
帖 子:15
专家分:7
注 册:2014-7-10
结帖率:50%
收藏
 问题点数:0 回复次数:4 
大家帮我看看代码哪里出问题了,谢谢了
这是我写的一个程序,里面大部分都有注释,编译没有错误,可是为什么程序执行起来无论我输入什么字符后他都只输入: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
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
if(value='0')   //分清楚=和==
        printf("terminata\n");break;

总有那身价贱的人给作业贴回复完整的代码
2014-07-10 16:51
饶强c
Rank: 1
等 级:禁止访问
帖 子:15
专家分:7
注 册:2014-7-10
收藏
得分:0 
回复 2 楼 embed_xuel
刚刚改了过了。不过还是不正确,输入一个字符后按回车键程序就结束了,而且什么输出也没有,也不知道是什么原因。
2014-07-10 16:53
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
3个自定义函数,你不会逐个测试看看到底是哪一个出问题?非要一次把3个都摆出来叫别人替你甄选?

授人以渔,不授人以鱼。
2014-07-10 22:37
饶强c
Rank: 1
等 级:禁止访问
帖 子:15
专家分:7
注 册:2014-7-10
收藏
得分:0 
回复 4 楼 TonyDeng
问题已经找到了。谢谢。
2014-07-11 14:48
快速回复:大家帮我看看代码哪里出问题了,谢谢了
数据加载中...
 
   



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

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