练习5-1 求m到n之和 (10分)
本题要求实现一个计算m~n(m<n)之间所有整数的和的简单函数。
函数接口定义:
int sum( int m, int n );
其中m和n是用户传入的参数,保证有m<n。函数返回的是m~n之间所有整数的和。
裁判测试程序样例:
#include <stdio.h>
int sum(int m, int n);
int main()
{
int m, n;
scanf("%d %d", &m, &n);
printf("sum = %d\n", sum(m, n));
return 0;
}
完整代码:
#include <stdio.h>
int sum(int m, int n);
int sum(int m,int n){
int sum = 0;
while(m<=n){
sum+=m;
m+=1;
}
return sum;
}
int main()
{
int m, n;
scanf("%d %d", &m, &n);
printf("sum = %d\n", sum(m, n));
return 0;
}
输入样例:
-5 8
输出样例:
sum = 21
练习5-2 找两个数中最大者 (10分)
本题要求对两个整数a和b,输出其中较大的数。
函数接口定义:
int max( int a, int b );
其中a和b是用户传入的参数,函数返回的是两者中较大的数。
裁判测试程序样例:
#include <stdio.h>
int max( int a, int b );
int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("max = %d\n", max(a, b));
return 0;
}
完整代码:
#include <stdio.h>
int max( int a, int b );
int max(int a,int b){
int max=0;
if(a<=b)
max=b;
else
max=a;
return max;
}
int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("max = %d\n", max(a, b));
return 0;
}
输入样例:
5 8
输出样例:
max = 8
练习5-3 数字金字塔 (15分)
本题要求实现函数输出n行数字金字塔。
函数接口定义:
void pyramid( int n );
其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注意每个数字后面跟一个空格。
裁判测试程序样例:
#include <stdio.h>
void pyramid( int n );
int main()
{
int n;
scanf("%d", &n);
pyramid(n);
return 0;
}
完整代码:
#include <stdio.h>
void pyramid( int n );
void pyramid( int n){
int i,j;
for(i=1;i<=n;i++){
for(j=i;j<n;j++){
printf(" ");
}
for(j=n-i;j<n;j++){
printf("%d ",i);
}
printf("\n");
}
}
int main()
{
int n;
scanf("%d", &n);
pyramid(n);
return 0;
}
输入样例:
5
输出样例:
1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
经供参考