您的位置:首页 > 编程语言 > C语言/C++

用指向指针的指针的方法对字符串和整数排序

2015-07-02 16:44 316 查看
【问题1】

用指向指针的指针的方法对5个字符串排序。

【C语言】

#include<stdio.h>
#include<string.h>

void sort(char **p) {
int i, j, k;
char *temp;
for (i = 0; i < 4; i++) {
k = i;
for (j = i + 1; j < 5; j++)
if (strcmp(*(p+k), *(p+j)) > 0)
k = j;
if (k != i) {
temp = *(p+k);
*(p+k) = *(p+i);
*(p+i) = temp;
}
}
}

int main() {
char **p,*pstr[5],str[5][20];
int i ;
for(i=0;i<5;i++)
pstr[i]=str[i];
for(i=0;i<5;i++)
scanf("%s",pstr[i]);
p=pstr;
sort(p);
for(i=0;i<5;i++)
printf("%s\n",pstr[i]);
return 0;
}


【问题2】

用指向指针的指针的方法对n个整数排序。

【C语言】

/*
* 8-21.c
*
* Created on: 2015年6月30日
* Author: lenovo
*/

#include<stdio.h>

void sort(int **p, int n) {
int i, j;
int *temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++)
if (**(p + i) > **(p + j)) {
temp = *(p + i);
*(p + i) = *(p + j);
*(p + j) = temp;
}
}

}

int main() {
int n;
scanf("%d", &n);
int **p, *pstr[20], a
;
int i;
for (i = 0; i < n; i++)
pstr[i] = &a[i];
for (i = 0; i < n; i++)
scanf("%d", &a[i]);
p = pstr;
sort(p, n);
for (i = 0; i < n; i++) {
printf("%d\t", *pstr[i]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 指针