标题:[求助]蔡鸟请教很简单的问题
只看楼主
colour19
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-8-24
 问题点数:0 回复次数:6 
[求助]蔡鸟请教很简单的问题

很菜的蔡鸟请教,请各位大侠稍作停留,帮忙!

1。输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
#include"stdio.h"
#include"math.h"
void main()
{
char c;
int letters=0,space=0,digit=0,others=0;
printf("please input some characters\n");

while((getchar())!='\n')
{
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;/*统计字符个数*/
else if(c==' ')
space++;/*统计空格个数*/
else if(c>='0'&&c<='9')
digit++;/*统计数字个数*/
else
others++;/*统计其他字符个数*/
}
printf("all in all:char=%d space=%d digit=%d others=%d\n",letters,space,digit,others);

}

以上程序编译的时候警告说c没有初始化,就那样运行的话,所有的输入都被统计成others了。

2.将一个正整数分解质因数。
#include"stdio.h"
#include"math.h"
void main()
{
int n,i;
printf("put in a number:");
scanf("%d",&n);
for(i=2;i<n;i++)
{
if(n%i==0)
{
printf("%d,",i);/*可以被整除的话,输出i*/

n=n/i;/*用n除以i的商作为新的n*/

}
else
break;
}
printf("%d",n);
}

以上程序编译正确,运行不正确,比如输入90,结果只有2,3。

[此贴子已经被作者于2005-11-2 15:38:26编辑过]

搜索更多相关主题的帖子: 统计 英文字母 include letters please 统计 英文字母 include letters please 
2005-11-02 15:30
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
得分:0 

#include"stdio.h"
#include"math.h"
int main(void)
{
char c ;
int letters=0,space=0,digit=0,others=0 ;
printf("please input some characters\n");

while((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
letters++;
/*统计字符个数*/
else if(c==' ')
space++;
/*统计空格个数*/
else if(c>='0'&&c<='9')
digit++;
/*统计数字个数*/
else
others++;
/*统计其他字符个数*/
}
printf("all in all:char=%d space=%d digit=%d others=%d\n",letters,space,digit,others);

return 0;
}



#include "stdio.h"
#include "math.h"
int main(void)
{
int n,i ;
printf("put in a number:");
scanf("%d",&n);
for(i=2;i<n;i++)
{
if(n%i==0)
{
printf("%d,",i);
/*可以被整除的话,输出i*/

n=n/i ;
/*用n除以i的商作为新的n*/

}

}
printf("%d",n);

return 0;
}


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-11-02 16:11
不走寻常路
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-9-26
得分:0 

#include<stdio,h>
main()
{
int n,i;
printf("put in a number:");
scanf("%d",&n);
if(n<=0)
printf("Error!");
for(i=1;i<=n;i++)
if(n%i==0)
printf("%4d",i);
}

学C不长,但很喜欢,梦想能成为编程一族! qq: 83461951 欢迎来指教!
2005-11-02 17:37
xiaxia421
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2005-10-15
得分:0 

可以解释一下为什么这个要分开吗?
c>='a'&&c<='z'||c>='A'&&c<='Z'

[此贴子已经被作者于2005-11-2 18:25:22编辑过]


[fts=3][M][ftc=#F16C4D]ぃ~~è前方是绝路,希望在转角è~~ぃ[/ft][/M][/ft]
2005-11-02 18:22
xiaxia421
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2005-10-15
得分:0 
不走寻常路 老兄
你的程序 有问题
只要输入稍微大点的数字运行结果就不正确了

[fts=3][M][ftc=#F16C4D]ぃ~~è前方是绝路,希望在转角è~~ぃ[/ft][/M][/ft]
2005-11-02 18:31
ghy2001
Rank: 1
等 级:新手上路
威 望:1
帖 子:87
专家分:0
注 册:2005-10-30
得分:0 
以下是引用xiaxia421在2005-11-2 18:31:17的发言:
不走寻常路 老兄
你的程序 有问题
只要输入稍微大点的数字运行结果就不正确了

我看没问题啊。要么改为5d.数字太大用long.


2005-11-02 19:20
不走寻常路
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-9-26
得分:0 
说的也是,如果愿意把数字改大,double也不够用,编程主要在思想,更重要的是效率!我想是这样的.

[此贴子已经被作者于2005-11-3 0:20:27编辑过]



学C不长,但很喜欢,梦想能成为编程一族! qq: 83461951 欢迎来指教!
2005-11-03 00:14



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




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

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