| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1006 人关注过本帖, 1 人收藏
标题:运行下 给个回答 谢谢
只看楼主 加入收藏
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:10 
运行下 给个回答 谢谢
#include<stdio.h>
#define NU 10
void main()
{
    void copyarray(int a[],int b[]);
    void addarray(int a[],int b[],int c[],int d[]);
    void init(int a[]);
    void display(int a[]);
    void samenum(int a[]);
    void sortarray(int a[]);
    int a[NU],b[NU],c[NU],d[NU],e[NU*NU*NU];
    int i;
    init(a);
    display(a);
    copyarray(a,b);
    display(b);
    copyarray(a,c);
    display(c);
    copyarray(a,d);
    for(i=0;i<NU;i++)
        d[i]=-d[i];
    display(d);
    addarray(b,c,d,e);
    for(i=0;i<NU*NU*NU;)
        printf(" %d",e[i++]);
    samenum(e);
    sortarray(e);   
}
void init(int a[])
{
    int i;
    printf("Input %d numbers:\n",NU);
    for(i=0;i<NU;)
        scanf("%d",a[i++]);
    putchar('\n');
}
void display(int a[])
{
    int i;
    for(i=0;i<NU;)
        printf("%d\n",a[i++]);
}
void copyarray(int a[],int b[])
{
    int i;
    for(i=0;i<NU;i++)
        b[i]=a[i];
    putchar('\n');
}
void addarray(int a[],int b[],int c[],int d[])
{
    int i,j,k,l;
    for(i=0;i<NU;i++)
        for(j=0;j<NU;j++)
            for(k=0;k<NU;k++)
                for(l=0;l<NU;l++)
                {
                    d[l]=c[i]+b[j]+a[k];
                    printf("%d ",d[l]);
                }
                printf("\n");
}
void samenum(int a[])
{
    int i,j,k=0,leap;
    for(i=0;i<NU*NU*NU;i++)
    {
        for(j=i+1;j<NU*NU*NU;j++)
            if(a[i]>a[j])
            {
                leap=a[i];
                a[i]=a[j];
                a[j]=leap;
            }
    }
    for(i=0;i<NU*NU*NU;)
    {
        for(j=i+1;j<NU*NU*NU;j++)
            if(a[i]=a[j])
                k++;   
        printf("the element same as %d have %d\n",a[i],k);
        i=j+1;
    }
   
}
void sortarray(int a[])
{
    int i,j,k=0,b[NU*NU*NU];
    for(i=0;i<NU*NU*NU;)
    {
        b[k++]=b[i];
        for(j=i+1;j<NU*NU*NU;j++)
            if(a[i]=a[j])
                continue;
        i=j+1;
    }
    for(i=0;i<k;i++)
        printf("%d ",b[i]);
    putchar('\n');
}
   
            
搜索更多相关主题的帖子: 运行 
2009-09-20 10:35
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
//一个一维数组A ,要求手工赋值,然后复制两个数组B、C, 再复制一个并取反得到一维数组D。 将得到的三个一维数组每个元素组合相加,将每个相加值赋给另外一个数组E。之后遍历E数组,统计相同的值有多少个,并输出。最后数组E按照小到大排列每个值,相同不重复显示 。
//例如:
//如A[]={1,2,3} 复制得到 B[],C[];再取反得到一个D[]={-1,-2,-3} 然后将B[]+C[]+D[] 得到E[]=(1+1+(-1),....) 然后查看E[]里面相同值的个数并显示,最后将E[]里面数值从小到大排列不显示重复值。
//
//要求,初始化、复制数组、数组相加、显示数组、统计相同元素值个数并输出、排序并筛选输出这几个操作封装成函数。
//
//函数名:
//初始化: init
//复制数组:copyArray
//显示数组:display
//数组相加:addArray
//统计相同元素值个数并输出:sameNum
//排序并筛选输出:sortArray
2009-09-20 10:35
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1696
专家分:4295
注 册:2007-12-27
收藏
得分:4 
从头到尾没看到你的问题是什么
大概是人老了,眼睛发花

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2009-09-20 11:10
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
2 楼
2009-09-20 11:12
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
COPY运行试试看
2009-09-20 11:14
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1696
专家分:4295
注 册:2007-12-27
收藏
得分:0 
你得提问题,要不别人没办法回答。
难道你看病的时候都不告诉医生说你哪里不舒服?

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2009-09-20 11:20
UserYuH
Rank: 12Rank: 12Rank: 12
来 自:毅华
等 级:火箭侠
威 望:8
帖 子:720
专家分:3300
注 册:2009-8-10
收藏
得分:4 
你的init函数下scanf("%d",a[i++]);少个'&'取地址符。
·
自定义addarray函数对数组e赋什不正确,始终对数组e下标0到9赋值。
·
自定义samenum函数排序外循环for多了一次循环,if(a[i]=a[j])这判断语句少个等号'='。查找e数组下相同的元素方法有问题。
·
自定义sortarray函数外循环for也多了一次循环,if(a[i]=a[j])这判断语句少个等号'=',if判断下应该用break退出循环语句,不是用continue继续语句,算法也有问题。
·
看完程序,给你个建义,在编一个函数或一模块时都要测试功能是否正常,正常了才往下编。

努力—前进—变老—退休—入土
2009-09-20 11:27
xingfeng0623
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2009-9-17
收藏
得分:4 
void sortarray(int a[])
{
    int i,j,k=0,b[NU*NU*NU];
    for(i=0;i<NU*NU*NU;)
    {
        b[k++]=b[i];
        for(j=i+1;j<NU*NU*NU;j++)
            if(a[i]=a[j])
                continue;
        i=j+1;
    }
    for(i=0;i<k;i++)
        printf("%d ",b[i]);
    putchar('\n');
}
看不懂
2009-09-20 11:56
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
///一个一维数组A ,要求手工赋值,然后复制两个数组B、C, 再复制一个并取反得到一维数组D。 将得到的三个一维数组每个元素组合相加,将每个相加值赋给另外一个数组E。之后遍历E数组,统计相同的值有多少个,并输出。最后数组E按照小到大排列每个值,相同不重复显示 。
//例如:
//如A[]={1,2,3} 复制得到 B[],C[];再取反得到一个D[]={-1,-2,-3} 然后将B[]+C[]+D[] 得到E[]=(1+1+(-1),....) 然后查看E[]里面相同值的个数并显示,最后将E[]里面数值从小到大排列不显示重复值。
//
//要求,初始化、复制数组、数组相加、显示数组、统计相同元素值个数并输出、排序并筛选输出这几个操作封装成函数。
//
//函数名:
//初始化: init
//复制数组:copyArray
//显示数组:display
//数组相加:addArray
//统计相同元素值个数并输出:sameNum
//排序并筛选输出:sortArray
#include<stdio.h>
#define NU 10
void main()
{
    void copyarray(int a[],int b[]);
    void addarray(int a[],int b[],int c[],int d[]);
    void init(int a[]);
    void display(int a[]);
    void samenum(int a[]);
    void sortarray(int a[]);
    int a[NU],b[NU],c[NU],d[NU],e[NU*NU*NU];
    int i;
    init(a);
    display(a);
    copyarray(a,b);
    display(b);
    copyarray(a,c);
    display(c);
    copyarray(a,d);
    for(i=0;i<NU;i++)
        d[i]=-d[i];
    display(d);
    addarray(b,c,d,e);
    //for(i=0;i<NU*NU*NU;)
    //    printf(" %d",e[i++]);
    //putchar('\n');
    samenum(e);
    sortarray(e);     
}
void init(int a[])
{
    int i;
    printf("Input %d numbers:\n",NU);
    for(i=0;i<NU;)
        scanf("%d",&a[i++]);
    putchar('\n');
}
void display(int a[])
{
    int i;
    for(i=0;i<NU;)
        printf("%d ",a[i++]);
    putchar('\n');
}
void copyarray(int a[],int b[])
{
    int i;
    for(i=0;i<NU;i++)
        b[i]=a[i];
    putchar('\n');
}
void addarray(int a[],int b[],int c[],int d[])
{
    int i,j,k,l=0;
    for(i=0;i<NU;i++)
        for(j=0;j<NU;j++)
            for(k=0;k<NU;k++)
            {
                d[l]=c[i]+b[j]+a[k];
                printf("%d ",d[l]);
                l++;
            }
            printf("%d ",d[l]);
            printf("\n");
}
void samenum(int a[])
{
    int i,j,k,leap;
    for(i=0;i<NU*NU*NU;i++)
    {
        for(j=i+1;j<NU*NU*NU;j++)
            if(a[i]>a[j])
            {
                leap=a[i];
                a[i]=a[j];
                a[j]=leap;
            }
    }
    for(i=0;i<NU*NU*NU;)
    {
        k=0;
        for(j=i+1;j<NU*NU*NU&&(a[i]==a[j]);j++)
            if(a[i]==a[j])
                k++;     
        printf("the element same as %d have %d\n",a[i],k);
        i=j+1;
    }
     
}
void sortarray(int a[])
{
    int i,j,k=0,b[NU*NU*NU];
    for(i=0;i<NU*NU*NU;)
    {
        b[k++]=a[i];
        for(j=i+1;j<NU*NU*NU&&(a[i]==a[j]);j++)
            ;
        i=j+1;
    }
    for(i=0;i<=k;i++)
        printf("%d ",b[i]);
    putchar('\n');
}

改成现在的形式  觉得里面还有点没有清楚
当你输入1 2 3 4 5 6 7 8 9 10的时候
按照设计应该有19这位数的 19=10+10-1
但是运行不出来
2009-09-20 12:26
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 8楼 xingfeng0623
这个函数是输出e数组的元数  但是重复的就不要再输出来
如果是键入1  2 3 4 5 6  7 8 9 10的话
最后 应该会是-8到19的  但是 19 不知道为什么不出来
2009-09-20 12:30
快速回复:运行下 给个回答 谢谢
数据加载中...
 
   



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

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