第一题
编写函数fun,函数的功能是实现B=A+A',即把矩阵A加上A的转置,存放到矩阵B中。计算结果在main函数中输出。
测试用例(以"%d "的格式输出,间隔为一个英文空格):
输入 | 输出 |
1 2 3 2 3 4 4 5 6 | 2 4 7 4 6 9 7 9 12 |
#include<stdio.h>
void fun(int a[][3],int b[][3]);
int main()
{
int a[3][3],b[3][3];
int i,j;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
scanf("%d",&a[i][j]);
}
}
fun(a,b);
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%d ",b[i][j]);
}
printf("\n");
}
return 0;
}
void fun(int a[][3],int b[][3])
{
for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
b[i][j]=a[i][j]+a[j][i];
}
}
}
第二题
编写一个函数,判断一个年份是否是闰年;再编写另一个函数,判断任意两个年份之间(包含这两个年份)有多少个闰年。在main函数中通过调用函数计算输出1900-2020年有多少个闰年。
测试用例:
输入 | 输出 |
无输入 | 30 |
明白闰年的定义即可,能够被400整除或者能够被4整除但是不能被100整除
#include<stdio.h>
int run(int n);
int main()
{
int cnt=0;
for(int i=1900;i<2021;i++){
if(run(i)==1){
cnt++;
}
}
printf("%d\n",cnt);
return 0;
}
int run(int n)
{
int flag=0;
if(n%400==0||n%100!=0&&n%4==0){
flag=1;
}
return flag;
}
第三题
编写递归函数求任意n个整数的最大值。
测试用例:
输入(第一行是n,第二行是n个整数) | 输出 |
5 11 2 33 5 6 | 33 |
#include<stdio.h>
int max(int arr[],int n);
int main()
{
int n;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
printf("%d\n",max(a,n));
return 0;
}
int max(int arr[],int n)
{
if(n==0){
return arr[0];
}else{
if(max(arr,n-1)<arr[n]){
return arr[n];
}else{
return max(arr,n-1);
}
}
}