| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2000 人关注过本帖
标题:不知道数组大小,应该怎么办啊
只看楼主 加入收藏
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
收藏
 问题点数:0 回复次数:9 
不知道数组大小,应该怎么办啊

这是谭教授书上的一道习题:
输入一个字符串,内有数字和非数字符,例如
A123X456 17690? 302TAB5876
将其中连续的数字作为一个整数,依次存放到一数组a中。例如,123放在a[0],456放在a[1]中。统计共有多少整数,并输出这些数。
本人弱智,实在想不通,这个数组的大小应该怎么样确定啊?并哥哥姐姐们指教!谢谢了!只提示一下就可以了!

搜索更多相关主题的帖子: 哥哥姐姐 字符串 统计 
2006-03-18 06:39
cordier
Rank: 2
等 级:论坛游民
威 望:1
帖 子:449
专家分:14
注 册:2006-2-9
收藏
得分:0 
#include <stdio.h>
#include <conio.h>
#define MAX 30
main()
{
int i,j,count=0;
char source[MAX]="A123X456 17690? 302TAB5876",*p=source,*temp;
int a[MAX];
for (i=0;i<MAX;i++)
a[0]=0;
while (*p)
{
if (*p>='0'&&*p<='9')
{
while (*p>='0'&&*p<='9'&&*p)
{
a[count]=a[count]*10+*p-'0';
p++;
}
count++;
}
else
p++;
}
printf("count=%d\n",count);
for (i=0;i<count;i++)
printf("a[%d]=%d\n",i,a[i]);
getch();
return 0;
}

可能程序还有一些小问题。

2006-03-18 07:59
haishanglang
Rank: 1
等 级:新手上路
帖 子:378
专家分:0
注 册:2006-3-2
收藏
得分:0 
以下是引用cordier在2006-3-18 7:59:00的发言:
#include <stdio.h>
#include <conio.h>
#define MAX 30
main()
{
int i,j,count=0;
char source[MAX]="A123X456 17690? 302TAB5876",*p=source,*temp;
int a[MAX];
for (i=0;i<MAX;i++)
a[0]=0; //改为a[i]=0 就行了,否则只有一,二个数输出正确
while (*p)
{
if (*p>='0'&&*p<='9')
{
while (*p>='0'&&*p<='9'&&*p)
{
a[count]=a[count]*10+*p-'0';
p++;
}
count++;
}
else
p++;
}
printf("count=%d\n",count);
for (i=0;i<count;i++)
printf("a[%d]=%d\n",i,a[i]);
getch();
return 0;
}

可能程序还有一些小问题。


2006-03-18 08:28
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
有个弱智点的方法,先讨论最坏的情况,BT用户输入了个极其BT的字符串 1`1`1`1`1`1 用户输入了11个字符,最坏的可能就是有11/2+1个数字出现,则我们让数组的大小定义为用户输入字符串长度N的 N/2+1 即可。语句是

int *number,n;
scanf("%d",&n);
number = (int*)malloc(sizeof(int)*(n*2-1));

这样就完成了定义数组大小的任务。当然这个方法比较傻,如果你有实力,可以用链表去实现这个功能,实在不行用realloc()函数改变数组长度也不错~

[此贴子已经被作者于2006-3-18 8:33:24编辑过]


淘宝杜琨
2006-03-18 08:33
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
收藏
得分:0 
以下是引用cordier在2006-3-18 7:59:00的发言:
#include <stdio.h>
#include <conio.h>
#define MAX 30
main()
{
int i,j,count=0;
char source[MAX]="A123X456 17690? 302TAB5876",*p=source,*temp;
int a[MAX];
for (i=0;i<MAX;i++)
a[0]=0;
while (*p)
{
if (*p>='0'&&*p<='9')
{
while (*p>='0'&&*p<='9'&&*p)
{
a[count]=a[count]*10+*p-'0';
p++;
}
count++;
}
else
p++;
}
printf("count=%d\n",count);
for (i=0;i<count;i++)
printf("a[%d]=%d\n",i,a[i]);
getch();
return 0;
}

可能程序还有一些
这个兄弟理解错了,我说的那些数组是举例,而在程序中数组是要输入的.所以比较麻烦啊

I am a programmer !
2006-03-25 23:04
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
收藏
得分:0 
请问四楼的哥们:整型指针变量能够直接定义用吗?我不懂!

I am a programmer !
2006-03-25 23:10
未来的梦
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-3-23
收藏
得分:0 

dynamic memory malloc


QQ: 619969970.weilai.虽无飞,飞必冲天;虽无鸣,鸣必惊人;虽无想,想则必成。
2006-03-25 23:18
仁者无敌
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2006-3-5
收藏
得分:0 
没有人可以帮我吗?

I am a programmer !
2006-03-27 21:30
zhou
Rank: 1
等 级:禁止发言
帖 子:429
专家分:0
注 册:2006-6-16
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-03-30 17:43
jamesbind
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-3-21
收藏
得分:0 
老谭的意思就是定义一个足够大的 数组。
2008-04-04 10:57
快速回复:不知道数组大小,应该怎么办啊
数据加载中...
 
   



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

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