西北农林科技大学c语言第五章答案,西北农林科技大学C语言上机实习5答案.doc...

实习五答案

用指针实现排序

/* exer 5-1 由键盘输入 10个整数,将它们按由小到大顺序排列 */

用指针实现:由键盘输入10个整数,将他们按由小到大的顺序排列。

输入: 键盘输入的10个整数。

输出: 按由小到大的顺序排列。

输入样例: 1 5 4 3 2 9 23 11 5 7

输出样例: 1 2 3 4 5 5 7 9 11 23

#include

void main(void)

{

int a[10],*p = NULL; /* 说明数组和指针 */

int i, j, temp;

for(p = a; p < a + 10; p++) /* 指针从数组首到尾 */

{

scanf("%d", p); /* 利用指针依次输入 */

}

p = a;

for(i = 0; i < 9; i++) /* 利用指针依次比较 */

{

for(j = i + 1; j < 10; j++)

if(*(p + i) > *(p + j))

{

temp = *(p + i);

*(p + i) = *(p + j);

*(p + j) = temp;

}

}

for(p=a; p < a + 9; p++)

printf("%d ", *p);

printf("%d\n", *p);

}

用指针实现字符串排序

/*exer 5-2 将 10个长度小于20的字符串排序*/

用指针实现:将10个字符串(设其长度小于20)从小到大排序。

输入: 10个字符串。

输出: 排序后的10个字符串。

输入样例: ijk

jkl

def

ghi

def

cde

hij

def

efg

fgh

输出样例: cde

def

def

def

efg

fgh

ghi

hij

ijk

jkl

提示: ① 定义二维字符数组和指向该数组的指针数组;

② 用循环使指针数组的元素指向二维字符数组各行首;

③ 用循环为指针数组元素赋字符串为值;

④ 用strcmp函数比较两个指针数组元素的值、用strcpy函数交换两个指针数组元素的值。

#include

#include

void main(void)

{

char szStr[10][20],*psz[10],szTemp[20];

int i,j;

for(i = 0; i < 10; i++)

{

psz[i] = szStr[i]; /*指针数组的每个元素指向各行串*/

}

for(i = 0; i < 10; i++)

{

gets(psz[i]); /*输入10个字符串*/

}

for(i = 0; i < 9; i++) /*字符串排序*/

{

for(j = i + 1; j < 10; j++)

{

if(strcmp(psz[i], psz[j]) > 0)

{

strcpy(szTemp, psz[i]);

strcpy(psz[i], psz[j]);

strcpy(psz[j], szTemp);

}

}

}

for(i = 0; i < 10; i++)

{

puts(psz[i]); /*输出字符串*/

}

}

数据倒置

/*exer 5-3 将具有10个元素的一维数组中的数据倒置 */

描述: 用指针实现:将具有10个元素的一维数组中的数据倒置 输入: 10个元素。 输入样例: 0 1 2 3 4 5 6 7 8 9 输出样例: 9 8 7 6 5 4 3 2 1 0

提示: 数据倒置是指将数组前后元素的值交换后再输出。

#include

void main(void)

{

int a[10]

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值