用指向指针的指针的方法对字符串和整数排序
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;
}
用指向指针的指针的方法对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;
}
相关文章推荐
- 关于指针的一些事情
- Lua和C语言的交互详解
- C# Pointer指针应用实例简述
- 关于C语言中参数的传值问题
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言内存对齐实例详解
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- 探讨C语言的那些小秘密之断言
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C++智能指针实例详解
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- 基于C语言fflush()函数的使用详解
- C语言单链队列的表示与实现实例详解
- 关于C语言除0引发的思考
- 深入分析C中不安全的sprintf与strcpy
- Lua教程(四):在Lua中调用C语言、C++的函数
- C语言求幂计算的高效解法