| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 445 人关注过本帖
标题:程序运行问题
只看楼主 加入收藏
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
结帖率:86.96%
收藏
已结贴  问题点数:5 回复次数:8 
程序运行问题
这是一个找出十个数里的最大最小数,然后把最小数放在数组的第一个元素,把最大数放在数组的最后一个元素,并输出
怎样也得不到结果,求详细



#include<stdio.h>
void main()
{
    int a[10];
    void input(int *);
    void chuli(int *);
    void shuchu(int *);
    input(a);
    chuli(a);
    shuchu(a);
}

void input(int x[])
{
int i;
for(i=0;i<10;i++)
scanf("%d",&x[i]);
}

void chuli(int x[])
{
int *max,*min,*p,temp,i;
min=x;
for(i=1;i<10;i++)
{
    if(*min>x[i]);
    temp=*min,*min=x[i],x[i]=temp;
}
x[0]=*min;
max=x;
for(i=1;i<10;i++)
{
    if(*max<x[i]);
    temp=*min,*min=x[i],x[i]=temp;
}
x[9]=*max;
}

void shuchu(int x[])
{
    printf("%d,%d",x[0],x[9]);
}

搜索更多相关主题的帖子: 怎样 include 元素 
2011-08-07 20:22
khaz
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:130
专家分:188
注 册:2011-4-21
收藏
得分:5 
程序代码:
#include<stdio.h>
int main()
{
   int a[10];
   void input(int *,int n);
   void chuli(int *,int n);
   void shuchu(int *,int n);
   input(a,10);
   chuli(a,10);
   shuchu(a,10);
   return 0;
}

void input(int x[],int n)
{
   int i;
   for (i = 0; i < n; i++)
      scanf("%d", &x[i]);
}

void chuli(int x[],int n)
{
   int *max, *min, *p, temp, i;
   min = x;
   for (i = 1; i < n; i++) {
      if (*min > x[i])
         *min=x[i];
   }
   max = &x[9];
   for (i = 0; i < n; i++) {
      if (*max < x[i])
        *max=x[i];
   }

}

void shuchu(int x[],int n)
{
   printf("%d,%d", x[0], x[9]);
}


问题出在交换过程中不断的改变了x[0]和x[9]的值,另外不该使用交换的算法,另外if后不应该加分号.本人还改了一下函数的原型,毕竟处理的元素个数写死不好。
2011-08-07 23:01
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
收藏
得分:0 
不明白呀,x[0],x[9]的值肯定要不断变化的,还有不用交换算法要用什么
2011-08-08 20:59
木偶然
Rank: 2
等 级:论坛游民
帖 子:29
专家分:22
注 册:2011-6-12
收藏
得分:0 
#include<stdio.h>
void main()
{
    int a[10];
    void input(int *);
    void chuli(int *);
    void shuchu(int *);
    input(a);
    chuli(a);
    shuchu(a);
}

void input(int x[])
{
int i;
for(i=0;i<10;i++)
scanf("%d",&x[i]);
}

void chuli(int x[])
{
int *max,*min,*p,temp,i;
min=x;
for(i=1;i<10;i++)
{
    if(*min>x[i])
    *min=x[i];
}
max=&x[9];
for(i=1;i<10;i++)
{
    if(*max<x[i])
    *max=x[i];
}
}

void shuchu(int x[])
{
    printf("%d,%d",x[0],x[9]);
}
2011-08-08 22:56
木偶然
Rank: 2
等 级:论坛游民
帖 子:29
专家分:22
注 册:2011-6-12
收藏
得分:0 
这里不是要交换,应该是赋值,将最小的数赋给*min,最大数赋给*max
2011-08-08 22:58
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:0 
程序代码:
#include <stdio.h>

void fun (int *n, int i)
{
    int temp;
    if (n[i] < n[0])
    {
        temp = n[0];
        n[0] = n[i];
        n[i] = temp;
    }
    else
    {
        if (n[i] > n[9])
        {
            temp = n[9];
            n[9] = n[i];
            n[i] = temp;
        }
       

    }

}

void main()
{
    int a[10];
    int i;
    printf ("输入10个数:\n");
    for (i = 0; i <= 9; i++)
        scanf ("%d", a + i);
    if (a[0] > a[9])
    {
        i = a[9];
        a[9] = a[0];
        a[0] = i;
    }
    for (i = 1; i <= 8; i++)
        fun (a, i);
    for (i = 0; i <= 9; i++)
        printf ("%d ", a[i]);
    printf ("\n");
}

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-08-08 23:06
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
收藏
得分:0 
回5楼:
但你用赋值的话,那原本储存在x[0]的那个值就会被覆盖掉啦!(刚才试过)
所有值都要保留.
2011-08-09 10:08
博士无双
Rank: 2
等 级:论坛游民
帖 子:32
专家分:65
注 册:2011-7-5
收藏
得分:0 
中间比较时不能交换,会改变数组的值


#include<stdio.h>
void input(int x[]);
void chuli(int x[]);
 void shuchu(int x[]);
void main()
{
    int a[10];
    void input(int *);
    void chuli(int *);
    void shuchu(int *);
    input(a);
    chuli(a);
    shuchu(a);
}

void input(int x[])
{
    printf("输入十个数;\n");
int i;
for(i=0;i<10;i++)
scanf("%d",&x[i]);
}

void chuli(int x[])
{
int max,min,p,temp,i;
min=x[0];
for(i=1;i<10;i++)
{
    if(min>x[i])
    min=x[i];
}
x[0]=min;
max=x[9];
for(i=8;i>0;i--)
{
    if(max<x[i])
    max=x[i];
}
x[9]=max;
}

void shuchu(int x[])
{
    printf("%d,%d",x[0],x[9]);
}
2011-08-09 10:54
hexianqi1994
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2011-8-3
收藏
得分:0 
回复 8楼 博士无双
但你用赋值的话,那原本储存在x[0]的那个值就会被覆盖掉啦!(刚才试过)
所有值都要保留.
2011-08-09 12:30
快速回复:程序运行问题
数据加载中...
 
   



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

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