| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1828 人关注过本帖
标题:[求助] 明天的作业,想半天不会做
只看楼主 加入收藏
ZZCCY
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-5-1
收藏
得分:0 

见笑了,能实现输出,但不能统计有多少个
#include "stdio.h"
main()
{
char a[50];
int i;
printf("Please input a sring:\n");
gets(a);
for(i=0;(i<50)&&(a[i]!='\0');i++)
{
if((a[i]>='0')&&(a[i]<='9'))
printf("%c",a[i]);
else printf(" ");
}
getch();
}

[此贴子已经被作者于2006-5-7 23:34:33编辑过]


程序 是一门语言的艺术,讲究学练读写!
2006-05-07 23:34
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
笑一下

淘宝杜琨
2006-05-07 23:37
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
11楼你呀 既然都。。。那么。。。可是。。。却要。。。

叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-05-07 23:41
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
以下是引用神vLinux飘飘在2006-5-7 23:29:00的发言:
我要写是很简单的事情,问题是,我为什么要帮人家做作业?

先不讨论你的程序是否能得到结果
先从你的设计思想去分析

#define N 30
char str[N];
int a[N] = {0}, i, j;
gets(str);

你很明显企图用一个固定大小的字符数组和int数组去装输入的字符串和输出的整形数组
但是,你这样写出的程序从它定义#DEFINE N 30的那句开始就已经死了,被你定死的~
空间浪费是小事,程序溢出才是大事!

也许你会说:什么嘛~不可能会有人有耐心输入超过30个字符去进行测试的.那你就错了~~~
有句话说得好: 如果一件以外它可能会发生,那么它就肯定会发生.
这是句名言,惭愧的是我自己也很难完全按照这句话的意思去处理那些程序中出现的异常.


再从算法角度分析
看这句
for (i = strlen(str) - 1; i >= -1; i--)
要知道strlen(char*)函数的算法复杂度是字符串的长度,一旦调用了这句就表明其实你已经遍历了一遍字符串了.然而你却仍然没得到想要的结果....


最后从编程习惯剖析
总的来说,你已经有一个非常好的编程习惯了,起码有了代码的缩进这个最基本的编程技巧了,别惊讶,我有好多同学仍然喜欢像玩堆高塔一样把代码堆积起来,十分恐怖~
但是一些容易让其他人阅读产生误解的变量,比如你这个程序中的flag变量就不知道用来做什么~应该加一点注释


顺便再说一下,你那程序怎么用的啊?为什么我老是得不到结果?

高手,佩服,就按楼主那么输入的,XP,DEV


a123x456 17960? 302tab5876

[此贴子已经被作者于2006-5-7 23:43:54编辑过]


日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-07 23:42
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
你尝试输入a2或者2之类的死亡测试没?

淘宝杜琨
2006-05-07 23:45
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
以下是引用神vLinux飘飘在2006-5-7 23:45:00的发言:
你尝试输入a2或者2之类的死亡测试没?

a2和2不输出,楼主的意思最少是两位整数

[此贴子已经被作者于2006-5-7 23:46:55编辑过]


日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-07 23:47
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

你一定是死扣住 "将其中连续的数字作为一个整数" 这句不放了...
算了,这里不是语文专区,不和你争论这个,你能按照你的理解去正确实现就是了

我的建议是,在大小未知的情况下用链表情况会好很多


淘宝杜琨
2006-05-07 23:51
ZZCCY
Rank: 1
等 级:新手上路
帖 子:87
专家分:0
注 册:2006-5-1
收藏
得分:0 

刚才突然不能登陆了.
13楼说的对,不过在这里得到大家这么多的帮助,也挺想出点力的,呵呵
不过水平有限啊,尽力了

[此贴子已经被作者于2006-5-8 0:05:00编辑过]


程序 是一门语言的艺术,讲究学练读写!
2006-05-08 00:04
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
此题调用<stdlib>库函数
long strtol(const char *, char **, int);
则大为简化

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-08 06:46
blackstine
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2006-4-10
收藏
得分:0 
路过,路过,路过;随便看看!!!

##今日不签名·#¥!!!
2006-05-08 09:47
快速回复:[求助] 明天的作业,想半天不会做
数据加载中...
 
   



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

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