当前位置:编程学习 > C/C++ >>

三道C语言题目

字符串统计题目描述 对于给定的一个字符串,统计其中数字字符出现的次数。 输入描述 输入数据是一个字符串。 输出描述 对于输入数据,输出该串中数值的个数。 输入样例 asdfasdf123123asdfasdf 输出样例6 青年歌手大奖赛_评委会打分题目描述青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。 输入描述 输入数据的第一个数是n (2<n<100),表示评委的人数,然后是n个评委的打分。 输出描述 对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。 输入样例 4 100 99 98 97 海选女主角题目描述电影《杭电记忆》准备海选女主角,面试那天,刚好来了m*n个MM,站成一个m*n的队列,导演为每个MM打了分数,分数都是32位有符号整数(分数还可能为负)。 选拔规则是:要选一个面试分数绝对值(必须还是32位整数)最大的MM。 特别说明:如果不幸选中一个负分的MM,也没关系,因为我觉得,如果不能吸引你,那要想法恶心你。 输入描述 每组输入数据的第一行是两个整数m和n,表示应聘MM的总共的行列数,然后是m行整数,每行有n个,m和n的定义见题目的描述。 输出描述 对于每组输入数据,输出三个整数x,y和s,分别表示选中的MM的行号、列号和分数。 note:行号和列号从一开始,如果有多个MM的分数绝对值一样,那么输出排在最前面的一个(即行号最小的那个,如果行号相同则取列号最小的那个)。 输入样例2 3 1 4 -3 -7 3 0 输出样例2 1 -7
答案:1、
#include <stdio.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
    char a[ 100 ];
    int count = 0, i = 0;
    gets( a );
    while( a[ i ] )
    {
        if(isdigit( a[ i ++ ] ))
            count ++ ;
    }
    printf("%d\n",count);
    return 0;
}

2、
#include <stdio.h>
int main(int argc, char *argv[])
{
    int i, j ;
    int n;
    double x ,max , min ,s = 0 ;
    for(scanf("%d",&n) , i = 0 ; i < n ; i ++ )
    {

        scanf("%lf",&x);
        if(!i)max = min = x;
        else
        {
            if(x > max) max = x ;
            if(x < min) min = x ;

        }
        s += x;
    }
    printf("%.2lf\n",( s - max - min) / (n - 2));
    return 0;
}

3、
#include <stdio.h>
int main(int argc, char *argv[])
{
    int i , j , m , n ;
    int a[100][100];
    int max , max_x , max_y;
    while(scanf("%d%d",&m,&n) != EOF)
    {
        for(i = 0 ; i < m ; i ++ )
        {
            for(j = 0 ; j < n ; j ++ )
            {
                scanf("%d",&a[ i ][ j ]);
                if(!i && !j)
                {
                    max = a[ i ][ j ];
                    max_x = max_y = 0;
                }
                else
                {
                    if(abs( a[ i ][ j ] ) >= abs( max ))
                    {
                        max = a[ i ][ j ];
                        max_x = i;
                        max_y = j;
                    }
                }
            }
        }
        printf("%d %d %d\n" , max_x + 1 , max_y + 1 , max );
    }
    return 0;
}
其他:1.
#include<iostream>
using namespace std;
int main()
{	char s[100];
	int i,c=0;
	gets(s);
	for( i=0;i<strlen(s);i++)
		if(s[i]<='9'&&s[i]>='0')
			c++;
		cout<<c<<endl;

}

2.
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{	int i,n,k,a[105],s=0;
	cin>>n;
	k=n;
	while(n--)
		cin>>a[n];
	sort(a,a+k);
	for(i=1;i<k-1;i++)
		s+=a[i];
	cout<<s/(k-2)<<endl;	
	return 0;
}

3.
#include<iostream>
#include<math.h>
using namespace std;
const int M=100;
int main()
{   long a[M][M],i,j,m,n;
    while(cin>>n>>m)
    {   int max=0,k,t;
       for(i=1;i<=n;i++)
         for(j=1;j<=m;j++)
            cin>>a[i][j];
            for(i=n;i>=1;i--)
               for(j=m;j>=1;j--)
               if(abs(max)<=abs(a[i][j]))
                { max=a[i][j];
                  k=i;t=j;
                }
               cout<<k<<" "<<t<<" "<<a[k][t]<<endl;
    }  
     return 0;
}


希望采纳!!!! #include<stdio.h>
int countdigit(int number,int digit)
{
 int count=0;
 while(number!=0)
 {
  if(number%10==digit)count++;
  number/=10;
 }
 return count;
}
main()
{
 int number,digit;
 scanf("%d%d",&number,&digit);
 printf("%d\n",countdigit(number,digit));
}

 

上一个:求C语言高手指点
下一个:C语言我这个程序到底错在哪里???

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,