标题:输入的数中除数组中第一个元素和最后一个元素外的其他元素按相反方向显示数 ...
只看楼主
沿途有鬼
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2008-7-20
 问题点数:0 回复次数:9 
输入的数中除数组中第一个元素和最后一个元素外的其他元素按相反方向显示数组问题
//创建3个函数分别输入数组、显示数组、除数组中第一个元素和最后一个元素外的其他元素按相反方向显示数组

#include<iostream>
using namespace std;

int Fill_array(double ar[],int n);
void Show_array(const double ar[],int n);
int Reverse_array(double ar[],int n,int x);

int main()
{

    int t,p;
    cout<<"Enter how much shuzu: ";
    cin>>t;
    double age[60];
    p=Fill_array(age,t);
    Show_array(age,p);
    Reverse_array(age,p,p);
    Show_array(age,p);

    return 0;




}



int Fill_array(double ar[],int n)
{
    int i;
    double temp;
    for(i=0;i<n;i++)
    {
     cout<<"Enter "<<i+1<<" score: ";
     cin>>temp;
     if(!cin)
     {
         cin.clear();
         while(cin.get()!='\n')
         continue;
         cout<<"Error enter! \n";
         break;
     }
     else if(temp<0)
         break;
     ar[i]=temp;
    }
    return i;
}
void Show_array(const double ar[],int n)
{
    for(int i=0;i<n;i++)
    {
        cout<<"#"<<i+1<<": "<<ar[i]<<" ";
    }
cout<<endl;
}
int Reverse_array(double ar[],int n,int x)//这个地方的排序是错误的请帮我改正确(要求除数组中第一个元素和最后一个元素外的其他元素按相反方向显示数组)
{
    double j=0;
    for(int i=0;i<n;i++,x--)
    {
    
        j=ar[i+1];
        ar[i+1]=ar[x-1];
        ar[x-1]=j;
        
    }
    return i;
}
搜索更多相关主题的帖子: 元素 int double 输入 std 
2008-07-25 18:39
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
得分:0 
void sort(double ar[],int n)
{
  int temp;
 int i;
  for( i = 1 i < n-1; i++) //改一下,应该是n-1/2 这样就ok了
{
   temp = ar[i];
   ar[i] = ar[n-1-i];
   ar[n-1-i] = temp;
}
}
你自己测试一下,随手写的。

[[it] 本帖最后由 missiyou 于 2008-7-25 21:06 编辑 [/it]]
2008-07-25 20:54
沿途有鬼
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2008-7-20
得分:0 
[bo][un]missiyou[/un] 在 2008-7-25 20:54 的发言:[/bo]

void sort(double ar[],int n)
{
  int temp;
 int i;
  for( i = 1 i < n-1; i++)
{
   temp = ar;
   ar = ar[n-1-i];
   ar[n-1-i] = temp;
}
}
你自己测试一下,随手写的。

int Reverse_array(double ar[],int n)
{
double j=0;

n=n-2;
for(int i=0;i<=n;n--,i++)
{
j=ar[i+1];
ar[i+1]=ar[n];
ar[n]=j;

}
解决了,谢谢你~

[[it] 本帖最后由 沿途有鬼 于 2008-7-25 21:44 编辑 [/it]]
2008-07-25 21:01
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
得分:0 
你相不相信你的也是换了两次
2008-07-25 21:13
沿途有鬼
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2008-7-20
得分:0 
[bo][un]missiyou[/un] 在 2008-7-25 21:13 的发言:[/bo]

你相不相信你的也是换了两次

刚才那个说是换了2次的注释是别人在百度上回答我的,我复制过来忘了消除了,我还是没搞懂什么换了2次,你能解释下吗?
2008-07-25 21:45
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
得分:0 
呵呵,一半加上一半等于N 我们要得是前一半,和后一半交换的次数,是1/2、
所以如果交换次数是N这样等于没有交换。
2008-07-25 22:11
jacksonchina
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-07-26 13:05
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
得分:0 
除数组中第一个元素和最后一个元素外的其他元素按相反方向显示数组

不可教也
2008-07-26 19:27
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
得分:0 
#include <stdio.h>
#include <stdlib.h>
void sort(int ar[],int n)
{
  int temp;
int i;
  for( i = 1 ;i < (n-1)/2; i++) //改一下,应该是n-1/2 这样就ok了
{
   temp = ar[i];
   ar[i] = ar[n-1-i];
   ar[n-1-i] = temp;
}
}

int main(int argc, char *argv[])
{
  //char *lp="abcdefg";
  int i;
  int am[7]={1,2,3,4,5,6,7};
  sort(am,7);
  for(i=0;i<7;i++)
  printf("%d\n",am[i]);
  //printf("%s\n",am);
  system("PAUSE");    
  return 0;
}
2008-07-26 20:10
jacksonchina
该用户已被删除
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2008-07-28 12:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-225246-1-1.html




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

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