程序设计8
- 问题8_1
- 代码8_1
- 结果8_1
- 问题8_2
- 代码8_2
- 结果8_2
- 问题8_3
- 代码8_3
- 结果8_3
问题8_1
函数
f
u
n
fun
fun 的功能是:求
s
s
ss
ss 所指字符串数组中长度最短的字符串所在行下标,作为函数值返回,并把其串长放在形参
n
n
n 所指的变量中。
s
s
ss
ss 所指字符串数组中共有
M
M
M 个字符串,且串长小于
N
N
N 。
例如,若形参
a
a
a 所指数组中的数据最初排列为
:
9
,
1
,
4
,
2
,
3
,
6
,
5
,
8
,
7
:9, 1, 4, 2, 3, 6, 5, 8, 7
:9,1,4,2,3,6,5,8,7 ,则按规则移动后,数据排列为
:
1
,
9
,
2
,
8
,
3
,
7
,
4
,
6
,
5
:1, 9, 2, 8, 3, 7, 4, 6, 5
:1,9,2,8,3,7,4,6,5 。形参
n
n
n 中存放
a
a
a 所指数组中数据的个数。
规定
f
u
n
fun
fun 函数中的
m
a
x
max
max 存放当前所找的最大值,
p
x
px
px 存放当前所找最大值的下标。
代码8_1
#include<stdio.h>
#include<string.h>
#define M 5
#define N 20
int fun(char (*ss)[N], int *n){
int i, k=0, len=N;
for(i=0; i<M; i++){
len = strlen(ss[i]);
if(0==i)
*n = len;
if(len<*n){
*n = len;
k =i;
}
}
return k;
}
void main(void){
char ss[M][N] = {"Shanghai", "Guangzhou", "Beijing", "Nanchang", "Zhiyishoudao"};
int n, k, i;
printf("\nThe original strings are:\n");
for(i=0; i<M; i++)
puts(ss[i]);
k = fun(ss, &n);
printf("\nThe length of shortest string is:%d\n", n);
printf("\nThe shortest string is:%s\n", ss[k]);
}
结果8_1
问题8_2
函数
f
u
n
fun
fun的功能是:将
t
t
tt
tt 所指字符串中的小写字母全部改为对应的大写字母,其它字符不变。
例如,若给
"
A
b
,
c
D
"
"Ab,cD"
"Ab,cD",则输出为
"
A
B
,
C
D
"
"AB,CD"
"AB,CD"。
代码8_2
#include<conio.h>
#include<stdio.h>
#include<string.h>
char* fun(char tt[]){
int i;
for(i=0; tt[i]; i++){
if(tt[i]>='a'&&tt[i]<='z')
tt[i] -= 32;
}
return(tt);
}
void main(void){
char tt[81];
printf("\nPlease enter a string:");
gets(tt);
printf("\nThe result string is:\n%s", fun(tt));
}
结果8_2
问题8_3
函数
f
u
n
fun
fun的功能是:将所有大于
1
1
1 小于整数
m
m
m 的非素数存入
x
x
xx
xx 所指数组中,非素数的个数通过
k
k
k 返回
例如,若输入
17
17
17 ,则应输出
:
4
6
8
9
10
12
14
15
16
:4\ 6\ 8\ 9\ 10\ 12\ 14\ 15\ 16
:4 6 8 9 10 12 14 15 16 。
代码8_3
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void fun(int m, int *k, int xx[]){
int i, j, n=0;
for(i=4; i<m; i++){ // 找出大于 1 小于整数 m 的非素数
for(j=2; j<i; j++)
if(i%j == 0) break;
if(j<i) xx[n++] = i;
}
*k =n; // 返回非素数的个数
}
void main(void){
int m, n, zz[100];
system("CLS");
printf("\nPlease enter an integer number between 10 and 100:");
scanf("%d", &n);
fun(n, &m, zz);
printf("\n\nThere are %d nonprime numbers less than %d:", m, n);
for(n=0; n<m; n++)
printf("\n%4d", zz[n]);
}