C语言程序设计8

问题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

Result

问题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

Result

问题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]);
}

结果8_3

result

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值