C语言/C++常见习题问答集锦(十三)

C语言/C++常见习题问答集锦(十三)

程序之美

在这里插入图片描述

1、输入学号查找学生 函数根据键盘输入的一个学号,t查找该学生是否存在,若存在,则输出其平均成绩,若不存在,则显示“not Find!”

float aver(int (*pStu)[7], int stuNo){
  float varAge = 0.0;
  int sum = 0;
  for(int i = 0; i < TOTAL_STU; i++){
    if(pStu[i][0] == stuNo){
      for(int j = 0; j < 7; j ++){
        sum += pStu[i][j];
      }
    }
  }
 
  if(sum > 0){
    varAge = sum / 7.0;
    return varAge;
  }
  else{
    return NO_FIND;
  }
}

2、输入4×4的数组,编写具有以下功能的程序。
① 求出对角线上各元素的和;
② 求出对角线上行、列下标均为偶数的各元素的积;
③ 找出对角线上其值最大的元素和它在数组中的位置。

#include <iostream>
#include <string>
 
#define M 4
#define N 4
 
using namespace std;
 
int main (int argc, char** argv) {
     
    int i, j, sum1, sum2;
    sum1 = sum2 = 0;
    int array[M][N] = {0};
 
    cout << "请给数组赋值初始化: ";
 
    for (i = 0; i < M; ++i) {
        for (j = 0; j < N; ++j) {
            cin >> array[i][j];
        }
    }
     
    cout << "赋值完成"  << endl;
    for (i = 0; i < M; ++i) {
        for (j = 0; j < N; ++j) {
            cout << array[i][j] << "  ";
        }
        cout << endl;
    }
    cout << sum1 << " " << sum2 << endl;
//对角线求和
    for (i = 0; i < M; ++i) {
        for (j = 0; j < N; ++j) {
            if (i == j) {
                sum1 += array[i][j];
//对角线上均为偶数的元素和
                if (0 == i % 2) {
                    sum2 += array[i][j];
                }
            }
        }
    }
 
    cout << "对角线求和:" << sum1 << endl;
    cout << "对角线偶求和:" << sum2 << endl;
     
    return true;
}

在这里插入图片描述
3、编写函数long compose(long number)完成如下功能:将长整型数中数字为偶数的数依次取出,构成一个新数返回。

#include<stdio.h>
long compose(long number)
{
	int n=10,m=0;
	while (number)
	{
		int t=number%10;
		if(t%2==0)
		{
			m+=t*n/10;
			n*=10;
		}
		number/=10;
	}
	return m;
}
void main()
{ 
	long a,b;
	printf("Enter a number:");
	scanf("%ld",&a);
	b=compose(a);
	printf("b=%ld\n",b);
}

4、用c语言输出ABCDEFG组成的直角三角形图案

A
BB
CCC
DDDD
EEEEE
FFFFFF

解法一:

#include<stdio.h>
void main()
{
 int i,j,k=65;
 for(i=1;i<=8;i++,k++)
 {
 for(j=1;j<=i;j++)
    printf("%c",k);
    printf("\n");
  }
}

解法二:

#include<stdio.h>
int main(){
    for(int i =0;i<7;i++){
        for(int j=1;j<=i+1;j++){
            printf("%c",'A'+i);
        }
        printf("\n");
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五一编程

程序之路有我与你同行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值