法1:
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
#define MaxSize 50
int main()
{
char *str;
str = (char *)malloc(MaxSize*sizeof(char));
cin>>str;
int len = int(strlen(str));
//cout<<len<<endl;
int array[MaxSize];
int i,j,min,max,sum=0;
int len2 = 0;
while(*str!=0)
{
if (*str>='0'&& *str<='9')
{
array[len2++] = *str-'0';
}
*str++;
}
int icount[10] = {0};
for(i = 0;i<=len2;i++)
{
for(j = 0;j<10;j++)
{
if(array[i] == j)
icount[j]++;
}
}
for(i = 0;i<10;i++)
{
if(icount[i]!=0)
{ min = i;
break;
}
}
for (i = 9;i>=0;i--)
{
if (icount[i]!=0)
{
max = i;
break;
}
}
for(i = min+1;i<=max-1;i++)
sum+=icount[i];
cout<<"最小值是:"<<min<<endl<<"最大值是:"<<max<<endl<<"中间那些数的和是:"<<sum<<endl;
return 0;
}
法2:
//第7题
#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
int main()
{
char str[100];
cout<<"输入一组字符串:"<<endl;
cin>>str;
int len = strlen(str);
int array[100];
int count = 0;
for(int i = 0;i<len;i++)
{
if(str[i]>='0' && str[i]<='9')
array[count++] = str[i]-'0';
}
array[count] = '\0';
int result = count;
int min = array[0];
int max = array[0];
for (int j = 0;j<count;j++)
{
if(max < array[j])
max = array[j];
else if(min>array[j])
min = array[j];
}
for(int k = 0;k<count;k++)
{
if(array[k] == min)
result--;
if(array[k] == max)
result--;
}
cout<<result<<endl;
return 0;
}