| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 731 人关注过本帖
标题:关于for的使用!!
只看楼主 加入收藏
便当—JSEIT
Rank: 1
等 级:新手上路
帖 子:18
专家分:8
注 册:2011-10-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:17 
关于for的使用!!
1、输入一行字符,统计并输出其中的英文字母、数字字符和其他字符的个数!!



2、s=1!+(1!+2!)+(1!+2!+3!)+…+(1!+2!+3!…n!)   n有键盘输入
搜索更多相关主题的帖子: 键盘 英文字母 
2011-10-25 18:26
吴军旗
Rank: 5Rank: 5
等 级:职业侠客
帖 子:286
专家分:308
注 册:2011-9-14
收藏
得分:3 
程序代码:
#include < stdio.h >
#include < stdlib.h >
#include < ctype.h >

void main ( )
{
    char ch;
    int sum1 = 0;
    int sum2 = 0;
    int sum3 = 0;
    int sum4 = 0;
    while((ch=getchar())!='\n')
    {
        if ( isdigit ( ch ) != 0 )
            sum1++;
        else if ( isspace ( ch ) != 0 )
            sum2++;
        else if ( islower ( ch ) != 0 || isupper ( ch ) != 0 )
            sum3++;
        else
            sum4++;
    }
    printf ( "%5d%5d%5d%5d", sum1, sum2, sum3, sum4 );
    system ( "pause" );
}
下题晚上来,上自习去了

最惨的不是忘不了悲伤的回忆,而是那些悲伤的回忆却开始记不清。。。
2011-10-25 18:31
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
第二问又是大数运算,哪位有兴趣计算一下当 n = 10000 时的 s?
期待中...

重剑无锋,大巧不工
2011-10-25 18:38
GeBron
Rank: 2
等 级:论坛游民
帖 子:23
专家分:33
注 册:2011-4-14
收藏
得分:3 
程序代码:
#include <stdio.h>

long long fac(long long );

int main(void)
{
    long long n, s, i;

    printf("Enter n: \n");
    scanf("%lld",&n);

    for (i = 1, s = 0; i <= n; i++)
    {
        s = s + fac(i) * (n - i + 1);
    }

    printf("result = %lld\n",s);

    return 0;
}

long long fac(long long i)
{
    long long int f;

    if (i == 0 || i == 1)
    {
        f = 1;
    }
    else
    {
        f = fac(i - 1) * i;
    }

    return f;
}



Enter n:
10000
result = 6293510998799641258

[ 本帖最后由 GeBron 于 2011-10-25 21:56 编辑 ]
2011-10-25 21:54
忆泪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:49
注 册:2011-10-22
收藏
得分:3 
回复 2楼 吴军旗
能给点儿注释不?if语句的判断条件是啥意思啊?
2011-10-25 22:03
忆泪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:49
注 册:2011-10-22
收藏
得分:0 
程序代码:
#include < stdio.h >
void main ( )
{
    char c;
    int letters=0,space=0,numbers=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')
            numbers++;
        else
            others++;
    }
    printf("All characters: \nchar=%d\nspace=%d\nnubers=%d\nothers=%d\n",letters,space,numbers,others);
}

2011-10-25 22:18
yj269172025
Rank: 2
等 级:论坛游民
帖 子:41
专家分:81
注 册:2011-9-29
收藏
得分:3 
2楼,10000已经超出一个字了,结果会出错的

[ 本帖最后由 yj269172025 于 2011-10-25 22:35 编辑 ]
2011-10-25 22:34
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 4楼 GeBron
你先告诉我10000!有多长吧。

重剑无锋,大巧不工
2011-10-25 22:38
黙然
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2011-10-24
收藏
得分:3 
如果要计算正确结果,必须要用数组来存储计算的结果,就算是64位的int,也会超出范围的。
2011-10-25 22:51
便当—JSEIT
Rank: 1
等 级:新手上路
帖 子:18
专家分:8
注 册:2011-10-9
收藏
得分:0 
回复 2楼 吴军旗
能用for吗????
2011-10-26 09:39
快速回复:关于for的使用!!
数据加载中...
 
   



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

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