| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6115 人关注过本帖, 3 人收藏
标题:继续C语言作业程序 发现程序上传给大家批是好事 群众的眼睛是雪亮的 也感谢 ...
只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用voidx在2011-4-21 01:33:09的发言:

楼主有些题目不需要暴力的也暴力了,有的代码写的有点繁琐
 
//第一题明显是等差数列
#include  
int main() {
    int x;
    printf("Give me a number bigger than 0: ");
    scanf("%d", &x);
    if (x > 0) {
        printf("%d", (2 - x % 2 + x / 2 + x % 2 - 1) * (x / 2 + x % 2)); //一条语句搞定
    } else {
        printf("Wrong input, exit now.");
    return 0;
}
 
// 键盘输入一个数给m,计算并返回满足表达式:1+(1+2)+(1+2+3)+(1+2+3+4)+……+(1+2+3+……+n)<=m最大的n。例如,当m=10000时,程序输出:n=38。
#include  
 
int main() {
    int m, n, i = 0;
    scanf("%d", &m);
    for (n = 1; i <= m; i += n, n++); //这样计算比较直观一点吧,这里不需要用等差数列求和公式的楼主倒是用了
    printf("Max n in 1+(1+2)+(1+2+3)+(1+2+3+4)+...+(1+2+3+……+n)<=m is %d\n", n - 1);
    return 0;
}
 
//活动中有三门礼炮,各装有十枚炮弹。第一门礼炮每隔3秒发一枚炮弹,第二门每隔5秒、第三门每隔7秒发一枚炮。问观礼群众一共听到几声炮响。三门炮的第一发炮弹是同时发出的,同一时间发出炮声算一响。
#include  
 
int main() {
    int i, j, ans = 30;
    for (i = 5, j = 7; i <= 50; i += 5, j += 7) {
        ans -= (i % 3 == 0 && i < 30 ) + ((j % 3 == 0 && j <= 30) || (j % 5 == 0 && j <= 50)); //直接减掉听不到的炮声。
    }
    printf("%d\n", ans);
    return 0;
}
 
//输出[m,n]范围内的所有斐波那契(Fibonacci)数,m,n这两个数由键盘输入。
#include  
 
int main() {
    int i, j, k, m, n;
    printf("Please input m and n: ");
    scanf(" %d %d", &m, &n);
    for (i = 0, j = k = 1; k < m;) { // 找到范围内的第一项
        k = i + j;
        i = j;
        j = k;
    }
    while (k <= n) { // printf() 范围内所有的项
        printf("%d, ", k);
        k = i + j;
        i = j;
        j = k;
    }
    printf("%c%c \n", 8, 8); // 最后可以通过 printf() 退格来删掉不想要的字符。楼主的代码为了控制格式可真是煞费苦心啊
    return 0;
}

认真学习中。。。
2011-04-21 08:34
zwhgudu1314
Rank: 1
等 级:新手上路
帖 子:22
专家分:7
注 册:2011-3-3
收藏
得分:0 
完全不懂
2011-04-21 18:38
xjzxylj
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:113
注 册:2011-4-18
收藏
得分:0 
这是我写的第一题程序。正在努力解题中,练习的好机会啊。
    printf("请输入一个数x\n");
    int x,i,j=0;
    cin >> x;
    if(x>=0)
    {
    if(x%2==0)
    {
        for(i=2;i<=x;i+=2)
            j+=i;
        printf("2+4....+x的和为   %d\n",j);
    }
    else
    {
        for(i=1;i<=x;i+=2)
            j+=i;
        printf("1+3....+x的和为   %d\n",j);
    }
    }
    else
        printf("输入值错误\n");

淫一手湿,简单;难的是,淫一被子湿。(富有诗意,此处抄袭)
2011-04-21 20:43
快速回复:继续C语言作业程序 发现程序上传给大家批是好事 群众的眼睛是雪亮的 也 ...
数据加载中...
 
   



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

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