C语言:6_6上机题

在这里插入图片描述

#include <stdio.h>
#include <assert.h>
#include <malloc.h>
#include <ctype.h>
#include <string.h>

void Vowel(char *des, const char *src)
{
	assert(des != NULL && src != NULL);
	if(des == NULL || src == NULL)
		return;

	char *vowel = "aeiouAEIOU";

	int j=0;
	while(*src != '\0')
	{
		for(int i=0; i<10; i++)
		{
			if(*src == vowel[i])
			{
				des[j++] = *src;
				break;
			}
		}
		src++;
	}

	des[j] = '\0';
}


char *MaxWords(const char *str)
{
	//assert
	int len = strlen(str);
	char *curword = (char *)malloc(sizeof(char) * (len+1));
	char *maxword = (char *)malloc(sizeof(char) * (len+1));
	//assert
	int cur = 0;
	int max = 0;
	
	while(*str != '\0')
	{
		if(isalpha(*str))
		{
			curword[cur++] = *str;
		}
		else
		{
			if(cur > max)
			{
				curword[cur] = '\0';
				strcpy_s(maxword, cur+1, curword);
				max = cur;
				cur = 0;
			}

		}
		str++;
	}

	if(cur > max)
	{
		curword[cur] = '\0';
		strcpy_s(maxword, cur+1, curword);
	}

	free(curword);
	return maxword;
}

void BubbleSort(int arr[], int len)
{
	//assert

	for(int i=0; i<len-1; i++)//循环的次数  记住减一次
	{
		for(int j=0; j+1<len-i; j++)//从头开始  j+1得合法 每次少判断一个
		{
			if(arr[j] > arr[j+1])
			{
				int tmp = arr[j];
				arr[j] = arr[j+1];
				arr[j+1] = tmp;
			}
		}
	}
}


int Lengeder(int n, int x)
{
	//assert n<0
	if(n == 0)
	{
		return 1;
	}
	else if(n == 1)
	{
		return x;
	}
	else
	{
		return ((2*n-1)*x-Lengeder(n-1,x)-(n-1)*Lengeder(n-2, x))/n;
	}
}


void Move(int arr[], int n, int m)
{
	//assert arr  n   m   n&&m

	int *brr = (int *)malloc(sizeof(int) * m);
	//assert

	for(int i=0; i<m; i++)//把后m个拷贝出来
	{
		brr[i] = arr[n-m+i];
	}
	for(int i=n-m-1; i>=0; i--)//把前面的向后挪动,把前面的空间空出来
	{
		arr[i+m] = arr[i];
	}
	for(int i=0; i<m; i++)//往空出来的空间内放值
	{
		arr[i] = brr[i];
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值