一、满足条件的数的累加

现有n个整数,将其中个位数为k的数进行累加求和

输入

第一行一个整数n。第二行n个非负整数,以空格分割,每个数不大于100000。第三行一个整数k。

输出

输出满足题目要求的累加和

样例输入

10

2 5 7 17 11 18 4 27 1 7

7

样例输出

58

#include<iostream>
using namespace std;
int main(){
	int n,sum=0;
	cin>>n;
	int a[n];
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	int k;
	cin>>k;
	for(int i=0;i<n;i++){
		if(a[i]%10==k){//个位数 
			sum+=a[i];
		}
	}
	cout<<sum;
	return 0;
}

二、合法C标识符

给定一个不包含空白符的字符串,请判断是否是 C 语言合法的标识符号(注:题目 保证这些字符串一定不是 C 语言的保留字)。 C 语言标识符要求: 1.非保留字; 2.只包含字母、数字及下划线(“ _”)。 3.不以数字开头。 输入 一行,包含一个字符串,字符串中不包含任何空白字符,且长度不大于 20。 输出 一行,如果它是 C 语言的合法标识符,则输出 yes,否则输出 no。

输入样例

RKPEGX9R;TWyYcp

输出样例

no

#include<iostream>
using namespace std;
int main(){
	string s;
	cin>>s;
	if(s[0]>='0'&&s[0]<='9'){//判断第一个字符是否是数字 
		cout<<"no";
		return 0;
	}
	for(int i=0;i<s.length();i++){
		if(!((s[i]>='0'&&s[i]<='9')||(s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z')||s[i]=='_')){
			cout<<"no";
			return 0;
		}
	}
	cout<<"yes";
	return 0;
}

三、计算鞍点

给定一个 5*5 的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。 例如:在下面的例子中(第 4 行第 1 列的元素就是鞍点,值为 8 )。

11 3 5 6 9

12 4 7 8 10

10 5 6 9 11

8 6 4 7 2

15 10 11 20 25

输入

输入包含一个 5 行 5 列的矩阵。

输出

如果存在鞍点,输出鞍点所在的行、列及其值,如果不存在,输出"not found"。

输入样例

11 3 5 6 9

12 4 7 8 10

10 5 6 9 11

8 6 4 7 2

15 10 11 20 25

输出样例

4 1 8

#include<iostream>
using namespace std;
int main(){
    int i, j;
    int a[5][5];
    int max[5], min[5];
    for(i=0; i<5; i++){
    	for(j=0; j<5; j++){
    		cin>>a[i][j];
		}    
	} 
    // 设置初始值
    for(i=0; i<5; i++) {
        max[i] = -1;
        min[i] = 32768;
    }
    // 求行的最大值, 列的最小值
    for(i=0; i<5; i++){ 
        for(j=0; j<5; j++) {
            if(a[i][j] > max[i])
                max[i] = a[i][j];
            if(a[i][j] < min[j])
                min[j] = a[i][j];
        }
    } 
    // 比较最大值和最小值,输出结果
    int flag = 1;
    for(i=0; i<5; i++){ 
        for(j=0; j<5; j++){ 
            if(max[i] == min[j]) {
                flag = 0;
                cout<<i+1<<" "<<j+1<<" "<<max[i];
                break;
            }
        } 
    } 
    if(flag)
        cout<<"not found";
    return 0;
}

四、谁考了第k名

在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学号和成绩,求考第 k 名学生的学号和成绩。

输入:第一行有两个整数,分别是学生的人数 n( 1≤n≤100)),和求第 k 名学生的 k(1≤k≤n)。 其后有 n 行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。

输出:输出第 k 名学生的学号和成绩,中间用空格分隔。(注:请用%g 输出成绩)

输入样例

5 3

90788001 67.8

90788002 90.3

90788003 61

90788004 68.4

90788005 73.9

输出样例

90788004 68.4

#include<iostream>
using namespace std;
int main(){
	int n,k;
	cin>>n>>k;
	long long a[n];//学号 
	float b[n];//分数 
	for(int i=1;i<=n;i++){
		cin>>a[i]>>b[i];
	}
	for(int i=1;i<=n;i++){
		for(int j=i+1;j<=n;j++){
			if(b[i]<b[j]){//按升序排序 
				swap(a[i],a[j]);//交换学号位置 
				swap(b[i],b[j]);//交换分数位置 
			}
		}
	}
	cout<<a[k]<<" "<<b[k];
	return 0;
}

Logo

为武汉地区的开发者提供学习、交流和合作的平台。社区聚集了众多技术爱好者和专业人士,涵盖了多个领域,包括人工智能、大数据、云计算、区块链等。社区定期举办技术分享、培训和活动,为开发者提供更多的学习和交流机会。

更多推荐