编写一个函数,统计一条英文句子中字母的个数,在主程序中实现输入输出。
1个回答
2016-05-29
展开全部
#include <stdio.h>
// n个元素以2个一组进行处理,有n/2组
// 2个元素之间比较1次,取当前最大最小值各比较一次
// 一共3次,所以最多执行3n/2次比较
void minmax(int* a, int n, int* min, int* max)
{
int tmin, tmax;
if(n & 1)
*min = *max = a[--n];
else {
if(a[n-1] < a[n-2])
*min = a[n-1], *max = a[n-2];
else
*min = a[n-2], *max = a[n-1];
n -= 2;
}
while(n >= 1) {
if(a[n-1] < a[n])
tmin = a[n-1], tmax = a[n];
else
tmin = a[n], tmax = a[n-1];
if(tmin < *min)
*min = tmin;
if(tmax > *max)
*max = tmax;
n -= 2;
}
}
int main()
{
int a[] = {5,1,3,9,2,6,0,8,4,7};
int min, max;
minmax(a, 10, &min, &max);
printf("min:%d max:%d\n", min, max);
return 0;
}
// n个元素以2个一组进行处理,有n/2组
// 2个元素之间比较1次,取当前最大最小值各比较一次
// 一共3次,所以最多执行3n/2次比较
void minmax(int* a, int n, int* min, int* max)
{
int tmin, tmax;
if(n & 1)
*min = *max = a[--n];
else {
if(a[n-1] < a[n-2])
*min = a[n-1], *max = a[n-2];
else
*min = a[n-2], *max = a[n-1];
n -= 2;
}
while(n >= 1) {
if(a[n-1] < a[n])
tmin = a[n-1], tmax = a[n];
else
tmin = a[n], tmax = a[n-1];
if(tmin < *min)
*min = tmin;
if(tmax > *max)
*max = tmax;
n -= 2;
}
}
int main()
{
int a[] = {5,1,3,9,2,6,0,8,4,7};
int min, max;
minmax(a, 10, &min, &max);
printf("min:%d max:%d\n", min, max);
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询