| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 450 人关注过本帖
标题:!求高手写下接下去的程序
只看楼主 加入收藏
slayers88
Rank: 1
等 级:新手上路
帖 子:11
专家分:8
注 册:2011-3-24
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:7 
!求高手写下接下去的程序
已知 y=2x^3 -3x^4 +6x^5 -4x+50 ,从 x=0 到 x=2 ,每隔 0.2 计算,并输入正整数n,将 y 的值进行排序后由小到大输出前n项和后n项(如输入5,则输出前5项和后5项,即最小的5个y值及最大的5个y值)。
我写的程序 这是求到前5项的 后5项在补充说明里
***************************************************
#include<stdio.h>
void main()
{
    int i,j,n;
    double x=0,t[11]={0},s;
loop:
    printf("请输入一个可以求前N项和后N项值的数(范围:1~5):");
    scanf("%d",&n);
    for(i=1;i<=11;i++)
    {
        if(x<=2)
        t[i]=2.0*x*x*x-3.0*x*x*x*x+6.0*x*x*x*x*x-4.0*x+50;
        x=x+0.2;
    }
    for(j=1;j<=10;j++)
        for(i=1;i<=10-j;i++)
            if(t[i]>t[i+1])
            {
                s=t[i];
                t[i]=t[i+1];
                t[i+1]=s;
            }
            for(i=1;0<n;n--)
                if(n<6)
                {
                    printf("%f\n",t[i]);
                i++;
                }
                else
            {
                printf("error!\n");
                goto loop;
            }
            
}
**************************
补充:N后项 我在后面加上了
for(i=11;0<n;n--)
   if(n<6)
   {
        printf("%f\n",t[i]);
        i--;
   }
用这段加进去没效果
有大大能改下 并说明么
搜索更多相关主题的帖子: 正整数 
2011-04-01 12:45
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
高手都不做作业,除非你给银两。嘿嘿。

我们都在路上。。。。。
2011-04-01 12:54
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
1,
像这样的:x*x*x*x,可以写一个函数,方便调用。
2,
for(i=11;0<n;n--)  //0<n 啥意思?

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-01 12:55
slayers88
Rank: 1
等 级:新手上路
帖 子:11
专家分:8
注 册:2011-3-24
收藏
得分:0 
我懒嘛~不想用math.h
for(i=11;0<n;n--)
输入n  n的值是  1-5里随便选的
当n=5   输出t[i]; i--  n在循环4次
2011-04-01 12:58
Ben2212
Rank: 2
来 自:AHU
等 级:论坛游民
帖 子:12
专家分:75
注 册:2011-3-30
收藏
得分:10 
既然你已经冒泡排序过了,直接输出不就ok了,还需要用什么goto语句吗?
程序代码:
#include<stdio.h>
void main()
{
    int i,j,n;
    double x=0,t[11]={0},s;

    printf("请输入一个可以求前N项和后N项值的数(范围:1~5):");
    scanf("%d",&n);
    for(i=1;i<=11;i++)
    {
        if(x<=2)
            t[i]=2.0*x*x*x-3.0*x*x*x*x+6.0*x*x*x*x*x-4.0*x+50;
        x=x+0.2;
    }
    for(j=1;j<=10;j++)
    {
        for(i=1;i<=10-j;i++)
            if(t[i]>t[i+1])
            {
                s=t[i];
                t[i]=t[i+1];
                t[i+1]=s;
            }
    }
    printf("前%d个数是:\n",n);
    for(i=1;i<=n;i++)
    {
        printf("%f\t",t[i]);
    }
    printf("\n后%d个数是:\n",n);
    for(i=1;i<=n;i++)
    {
        printf("%f\t",t[11-n+i]);
    }
    printf("\n");
}
2011-04-01 13:11
slayers88
Rank: 1
等 级:新手上路
帖 子:11
专家分:8
注 册:2011-3-24
收藏
得分:0 
goto 语句 其实 是用来 输出 出错的语句的  
当值 大于5的时候 就输出error并回到上面 重新输入一个值
难道是这里有问题?
2011-04-01 13:14
Ben2212
Rank: 2
来 自:AHU
等 级:论坛游民
帖 子:12
专家分:75
注 册:2011-3-30
收藏
得分:0 
那不如用循环,goto语句不提倡,就像你写的,你在输出前n个数的时候,n的值已经被你减到0了,此时在做后面的自然没效果!
2011-04-01 13:19
slayers88
Rank: 1
等 级:新手上路
帖 子:11
专家分:8
注 册:2011-3-24
收藏
得分:0 
恩~谢谢
2011-04-01 13:29
快速回复:!求高手写下接下去的程序
数据加载中...
 
   



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

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