用指针实现向数组输入N个整数,并将数据由大到小排序、输出。

如题所述

#include <iostream>
using namespace std;
int main()
{
int i,j,n;
cout <<"输入个数:\n";
cin>>n;
int*a=new int[n];
cout <<"输入数组:\n";
for(i=0;i<n;i++)
{
cin>>a[i];
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
swap(a[j],a[j+1]);
}
}
for(i=n-1;i>=0;i--){
cout <<a[i]<<" ";
}
cout <<endl;
delete []a;
return 0;
}
//有人这么推荐我,我就直接把代码帮你贴过来
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-05-16
看看这个的2楼can159263的回答!

http://zhidao.baidu.com/question/97588730.html?ansup1
第2个回答  2009-05-17
#include <iostream>
#include <string.h>
using namespace std;

void main()
{
int *p_data;
cout << "type numbers,press Enter to end:\n";

int len=1,i,j,data,ch;
p_data = new int[len];
do
{
cin >> data;
p_data[len-1]=data;
len++;
}while(cin.peek() != '\n');
for(i=1;i<len-1;i++)
for(j=0;j<len-1-i;j++)
if(p_data[j]<p_data[j+1])
{
ch = p_data[j];
p_data[j] = p_data[j+1];
p_data[j+1] = ch;
}

for(i=0;i<len-1;i++)
cout<<p_data[i]<<" ";
cout <<endl;
}

用指针实现向数组输入N个整数,并将数据由大到小排序、输出。
cout <<"输入个数:\\n";cin>>n;int*a=new int[n];cout <<"输入数组:\\n";for(i=0;i<n;i++){ cin>>a[i];} for(i=0;i<n-1;i++){ for(j=0;j<n-1-i;j++){ if(a[j]>a[j+1])swap(a[j],a[j+1]);} } for(i=n-1;i>=0;i--){ cout <<a[i]<<" "...

C语言编程:用指向指针的指针的方法对n个整数排序并输出。
void sort(int **,int );int i,n,data[20],**p,*pstr[20];scanf("%d",&n);for(i=0;i<n;i++)pstr[i]=&data[i];for(i=0;i<n;i++)scanf("%d",pstr[i]);p=pstr;sort(p,n);for(i=0;i<n;i++)printf("%d ",*pstr[i]);return 0;} ...

输入n个字母,然后从大到小排序后输出(用指针编写)
printf("重新按由小到大排列数组为:\\n");for(i=0;i<m;i++)if(i<m-1)printf("%d ",*(p+i));else printf("%d\\n",*(p+i));}

输入n和n个整数,按正序,逆序,奇数,偶数,输出这几个证书,使用指针
int main(void){ int n,i ;int a[10];printf("输入n:");scanf("%d",&n);printf("提示输入%d个整数:",n);\/\/输入数组 for(i=0;i<n;i )scanf("%d",&a[i]);printf("正序输出一维数组\\n");\/\/正序输出数组 for(i=0;i<n;i=i 1){ printf("数组元素a[%d],元素值%d\\n",...

...指向指针的指针方法对n个整数排序并输出。要求将排序单独写成一个函...
在C++中,〔〕是可以被重载的。明白了上面那一点后,再来看,那么指针变量p和数组名a便具有了相同的性质,即:都是一个指针。(1)p+1,a+2,p++,p=p+1,p-a当然都是合法的了。因为它们是相同类型的量之间进行的运算。只不过,这个量不同于一般存放数据的量,它存放的是地址罢了。(2)a...

用指针法编写求 a 数组 n 个元素中的数值最大和最小的函数。 并求一维...
\/\/求最大值du函数 int max_func(int a[],int n){ int i,max;for(max=a[0],i=1;i<N;i++) \/\/初始zhi默认最大值为a[0],遍历数组元素 if(max<a[i]) \/\/如果当前最大值<当前数组元素,则dao将该元素赋值给max max=a[i];return max;} \/\/求最小值函数 int min_func(int a...

c语言编程:输入一个数字n,再输入n个数,将这个n个数从小到大输出。
scanf(输入n的值);\/\/输入个数 int array;\/\/把需排序的数列定义为数组。这里需要指出的是,如果定义为array[n-1],因为你的n在编译时未赋值,所以编译是不会通过的。于是这里直接将它定义为一个指针,赋值方法跟数组相同。但是个数太多就不能这么做了 for(i = 0;i < n;i++){ \/\/输入需要...

冒泡排序:输入n个字符串,对其进行冒泡排序,使其按从小到大顺序输出
以字符串指针数组为基础,进行冒泡排序,参考代码如下 include<stdio.h> include<string.h> define N 5 define L 200 void sort(char *p[], int n){ int i,j;char *t;for(i=0;i<n-1;++i)for(j=0;j<n-i-1;++j)if(strcmp(p[j],p[j+1])>0){ t=p[j];p[j]=p[j+1];...

c++输入n及n个整数,按奇数升序,偶数降序排列输出
根据type决定是升序还是降序] * @param ary [传进来要排序的数组] * @param len [排序数目] * @param type [排序类型,升序或降序] *\/void sort(int *ary,int len,bool type){ \/\/每个数同后面的所有数都比较一次,将最值放到最前面,下次从下一个开始比较 for(int i=0;i<len...

用指向指针的指针的方法对n个整数排序。要求将排序单独写成一个函数...
void sort(int * num[],int n)\/\/冒泡排序,应该没错。{ int * t;int i,j,k;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(num[k]>num[j])\/\/num指向的是一个指针,必须加 k=j;if(k!=j){ t=num[i];num[i]=num[k];num[k]=t;} } } 试一试是不是正确的...

相似回答