| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1042 人关注过本帖
标题:求解一个很简单的程序错误,请指教!
只看楼主 加入收藏
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:1 
void main()
{
    int i,a[10];
   
    void maxmin(int *);
   
    printf("key the 10 numbers:");
   
    for(i=0;i<10;i++)
     {
      scanf("%d",&a[i]);
     }
   
    maxmin(a);
   
    printf("the new array is:");
   
    for(i=0;i<10;i++)
    printf("%d,",a[i]);
   
}



  void maxmin(int *a)
  {
      int *p,*max,*min,temp;
      p=max=min=a;
      for(p=a+1;p<a+9;p++)
       {
           if(*p<*min)
            {
               min=p;
            }
            else if(*p>*max)
             {
                 max=p;
             }
            else
            {
            }
       }
/*如果不考虑最大和最小数在a[0]和a[9]的特殊情况,下面代码可以删除*/      
       if((min==a)&&(max==a+9))
         {
         }
       else if((min==a+9)&&(max==a))
         {
             temp=a[0];
             a[0]=a[9];
             a[9]=temp;
         }
        else if(min==a+9)
          {
           temp=a[0];
              a[0]=a[9];
              a[9]=temp;
              
              temp=*max;
              *max=a[9];
              a[9]=temp;
          }
        else if(max==a)
          {
           temp=a[0];
              a[0]=a[9];
              a[9]=temp;
              
              temp=*min;
              *min=a[0];
              a[0]=temp;
          }
         else
/*如果不考虑最大和最小数在a[0]和a[9]的特殊情况,上面代码可以删除*/   

/*下面是交换的过程*/
          {
           temp=a[0];
           a[0]=*min;
           *min=temp;
           
           temp=a[9];
           a[9]=*max;
           *max=temp;   
          }
      
 }

[ 本帖最后由 kettle99 于 2010-6-3 16:53 编辑 ]
2010-06-03 16:48
xjy080
Rank: 2
等 级:论坛游民
帖 子:55
专家分:78
注 册:2008-9-15
收藏
得分:0 
回复 10楼 源本英明C
我的程序 你输入 10 9 8 7 6 5 4 3 2 1
     输出应该是 1 9 8 7 6 5 4 3 2 10
符合你的要求啊!

没法上截图只有这么跟你讲了。
2010-06-04 22:48
欧阳鹏
Rank: 2
等 级:论坛游民
帖 子:14
专家分:27
注 册:2010-5-29
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>
void shu (int *p,int n)
{
printf("please put %d number:",n);/*输出:请输入十个数字*/
for(int i=0;i<5;i++)
        scanf("%d",p++);
}
main ()
{
int a[5],*p,i;
system("cls");
p=a;/*将数组的首地址付给p*/
shu(p,5);/*调用输入数组*/
for(i=0;i<5;i++)
printf(" %6d",*(p++));/*输出你输入的数*/
printf("\n");
}
2010-06-07 11:18
快速回复:求解一个很简单的程序错误,请指教!
数据加载中...
 
   



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

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