| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1180 人关注过本帖
标题:关于数组的问题,请各位高手指教
只看楼主 加入收藏
y877034456
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2008-10-20
收藏
 问题点数:0 回复次数:12 
关于数组的问题,请各位高手指教
如果在事先不知道一个数组的长度,怎么定义一个数组?
    比如说我要输入一个字符串判断是不是回文,就是这个字符串关于中间那个字符对称。比如ABCBA,MADAM,就是一个回文??
搜索更多相关主题的帖子: 指教 
2008-11-20 20:35
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
方法一,定义一个非常大的数组,比如char s[65536]
方法二,让用户先输入字符串长度,然后用malloc申请足够的空间
方法三,使用getchar()逐个读取用户的输入

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-11-20 20:46
zhangjiayi
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-11-19
收藏
得分:0 
如果数组长度不知道的话你可以事先定义一个够长的长度嘛
关于回文:你可以把ABCBA先复制到一个字符串str中,然后用str与ABCBA相比较
如果相等就是回文
不等就不是嘛
2008-11-20 20:46
studentm
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-11-21
收藏
得分:0 
我认为有两种解决方法
1.可以选择使用哪个c++,直接使用 string类 然后cin》就可以了
2.如果你执意用c的话,可以realloc,然后使用 getc(stdin),每读取一次字符就重新分配下空间就OK了
2008-11-21 11:51
lixiaohui
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-21
收藏
得分:0 
我说一个哈,可以定义动态数组,比如,int n;char*p;p=new int[n];如果还不明白我可以把程序给你
2008-11-21 21:56
风居住的街道
Rank: 1
等 级:新手上路
帖 子:374
专家分:0
注 册:2008-10-24
收藏
得分:0 
LS:请不要在C论坛贴C++的代码……
2008-11-21 22:07
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
收藏
得分:0 
[bo][un]lixiaohui[/un] 在 2008-11-21 21:56 的发言:[/bo]

我说一个哈,可以定义动态数组,比如,int n;char*p;p=new int[n];如果还不明白我可以把程序给你

偶不明白  你发个程序出来让我们学学吧!

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-11-21 22:26
y877034456
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2008-10-20
收藏
得分:0 
回复 第5楼 lixiaohui 的帖子
动态数组??
怎么定义啊?麻烦指教一下!!

现实的世界,现实的我!!
2008-11-27 19:40
y877034456
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2008-10-20
收藏
得分:0 
回复 第2楼 永夜的极光 的帖子
我用getchar()是这样做的,但是无论做什么都得输出是回文的情况,你帮我看一下是怎么样回事
#include"stdio.h"
main()
 { int a[100],i,j,k;
   printf("qing su ru yi cuan zi fu:");
   for(i=0;(a[i]=getchar())!='\n';i++)
   j++;
   for(i=0;i<=j/2;i++)
    {if(a[i]=a[j-1])
     k++;}
    if(k=j/2)
    printf("zhe shi hui wen!\n");
    else
    printf("zhe bu shi hui wen!\n");
  }

现实的世界,现实的我!!
2008-11-27 19:50
y877034456
Rank: 1
等 级:新手上路
帖 子:18
专家分:1
注 册:2008-10-20
收藏
得分:0 
回复 第2楼 永夜的极光 的帖子

我用getchar()是这样做的,但是无论做什么都得输出是回文的情况,你帮我看一下是怎么样回事
#include"stdio.h"
main()
{ int a[100],i,j,k;
   printf("qing su ru yi cuan zi fu:");
   for(i=0;(a[i]=getchar())!='\n';i++)
   j++;
   for(i=0;i<=j/2;i++)
    {if(a[i]=a[j-i])
     k++;}
    if(k=j/2)
    printf("zhe shi hui wen!\n");
    else
    printf("zhe bu shi hui wen!\n");
  }

现实的世界,现实的我!!
2008-11-27 19:51
快速回复:关于数组的问题,请各位高手指教
数据加载中...
 
   



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

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