| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 395 人关注过本帖
标题:帮忙优化一下程序
只看楼主 加入收藏
porywei
Rank: 2
等 级:论坛游民
帖 子:36
专家分:73
注 册:2014-3-6
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:4 
帮忙优化一下程序
题目:第一行是数列的数目t(0 <= t <= 20)。以下每行均包含四个整数,表示数列的前四项。约定数列的前五项均为不大于10^5的自然数,等比数列的比值也是自然数。对输入的每个数列,输出它的前五项。

源程序:
#include"stdio.h"

int enter_num();
int judge(int i[]);

int main()
{   
    int progression_num;
    int i[4];
    int k;
    int count=0;

    progression_num=enter_num();
//    printf("%d  ",progression_num);

    while(count<PROGRESSION_NUM)
    {
        printf("input the first four number(only four):");
        for(k=0;k<4;k++)
        scanf("%d",&i[k]);
   
        judge(i);
        count++;
    }
    return 0;

}

//enter_num define

int enter_num()
{
    int progression_num;

    printf("Enter the num of progression (attention:0<=num<=20) : ");
    scanf("%d",&progression_num);
    if(progression_num<0||progression_num>20)
    {
        printf("error,please input again!\n");
        enter_num();
    }
    return progression_num;
}



//judge define
int judge(int i[])
{
   
    if((i[3]-i[2])==(i[2]-i[1])&&(i[2]-i[1])==(i[1]-i[0]))
    {
        printf("this progression is arithmetic progression:");
        printf("%d %d %d %d %d\n",i[0],i[1],i[2],i[3],i[3]+(i[3]-i[2]));
    }
       else if((i[3]/i[2])==(i[2]/i[1])&&(i[2]/i[1])==(i[1]/i[0])&&(i[3]%i[2]==0))    {
        printf("this progression is geometric progression:");
        printf("%d %d %d %d %d\n",i[0],i[1],i[2],i[3],i[3]*(i[3]/i[2]));
    }
    else
        printf("error,this progreesion is not arithmetic or geometric\n");
        
}
搜索更多相关主题的帖子: include number 自然数 源程序 count 
2014-03-14 10:14
porywei
Rank: 2
等 级:论坛游民
帖 子:36
专家分:73
注 册:2014-3-6
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

程序员没有女朋友
2014-03-14 10:15
fragileeye
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:107
专家分:387
注 册:2011-5-21
收藏
得分:20 
问题描述不够清晰,是禁止输入浮点数而避免 问题1.png还是怎样?
2014-03-14 11:53
porywei
Rank: 2
等 级:论坛游民
帖 子:36
专家分:73
注 册:2014-3-6
收藏
得分:0 
如果 输入的num为浮点数的话 就会出现乱码,如何避免在输入浮点数仍然不出现这个问题

程序员没有女朋友
2014-03-14 11:57
fragileeye
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:107
专家分:387
注 册:2011-5-21
收藏
得分:0 
直接在scanf中是没有办法避免的,因为float跟int在内存中存储格式就不是一样的。可以再输入完成后检测是否为int。
2014-03-23 11:40
快速回复:帮忙优化一下程序
数据加载中...
 
   



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

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