用指向指针的指针的方法对n个整数排序并输出

前言

存档。困扰了我很久的题目
感觉现在思路还不是很清晰。
指针好难哦!
有什么还不清楚的地方将来补上!


以下是本篇文章正文内容,下面案例可供参考

题目描述

用指向指针的指针的方法对n个整数排序并输出
要求将排序单独写一个函数,n和整数在主函数中输入,最后在主函数中输出

#include <stdio.h>
int main()
{
	_____(1)__________
	int i,n,digit[20],**p,*pstr[20];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	_______(2)_______
	for(i=0;i<n;i++)
	scanf("%d",pstr[i]);
	______(3)________
	sort(p,n);
	for(i=0;i<n;i++)
	printf("%4d",*pstr[i]);
}

void sort(int** p, int n)//指针排序
{
	int i,j,*temp;
	for(i=0;i<n-1;i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(______(4)_______)
			{
				temp=*(p+i);
				*(p+i)=*(p+j);
				*(p+j)=temp;
			}
		}
	 } 
} 

填空

#include <iostream>
using namespace std;
int main()
{
  void sort(int** , int );
	int i,n,digit[20],**p,*pstr[20];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	pstr[i]=&digit[i];//pstr的元素为指针指向的地址
	//挖坑:像一维指针一样只赋予第一个元素地址,无法继续
	for(i=0;i<n;i++)
	scanf("%d",pstr[i]);
	p=pstr;//把pstr的地址赋予p
	sort(p,n);
	for(i=0;i<n;i++)
	printf("%4d",*pstr[i]);
}
void sort(int** p, int n)//指针排序
{
	int i,j,*temp;
	for(i=0;i<n-1;i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(*(*(p+i))>*(*(p+j)))
//取出p+i个元素储存的地址,再到该地址取值
/*如果写成*(*p+i)也是一样的结果(数组里的地址是连续的?)
挖坑:将两个不同的数组的地址分别赋予pstr的各一半元素,结果不变
输出两个数组的地址发现跟实际pstr得到的地址并不相同
			{
				temp=*(p+i);
				*(p+i)=*(p+j);
				*(p+j)=temp;
			}
		}
	 } 
} 

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值