A. 实验5_1_设计函数fun
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
已知分段函数,当x<1时,y=x;当1<=x<=10时,y=2x-1;当10< x <=100时,y=3x-11;当x>100时,y=x*x-24。
设计函数int fun(int x),根据分段函数计算y值。
函数返回值范围不会超过int型变量。
输入为一个整数x,即自变量x。输出为函数值y的结果。
输入样例
Sample 1:
-99
Sample 2:
100
输出样例
Sample 1:
The result is:y=-99
Sample 2:
The result is:y=289
示例代码
#include<stdio.h>
int fun(int);
int main()
{
int x;
scanf("%d", &x);
printf("The result is:y=%d", fun(x));
return 0;
}
int fun(int x)
{
if (x < 1)
{
return x;
}
else if (x <= 10)
{
return 2 * x - 1;
}
else if (x <= 100)
{
return 3 * x - 11;
}
else
{
return x * x - 24;
}
}
B. 实验5_3_设计函数getDays
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
问题描述:
设计函数int getDays(int year,int month),根据给定的年year和月份month,计算该月的天数并返回。要注意闰年的判断
输入与输出要求:
输入两个整数y,m,即年份与月份。输出该年内该月的天数,占一行。
输入样例
1995 7
2000 2
输出样例
There are 31 days in month 7 year 1995.
There are 29 days in month 2 year 2000.
示例代码
#include<stdio.h>
int day(int, int);
int main()
{
int year, month;
scanf("%d %d", &year, &month);
printf("There are %d days in month %d year %d.", day(year, month), month, year);
return 0;
}
int day(int year, int month)
{
if ((year % 4 == 0 && (year % 100 != 0 ||year % 400 == 0)) && month == 2)
{
return 29;
}
else
{
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 2:
return 28;
default:
return 30;
}
}
}
C. 实验5_4_设计函数getDigit
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
问题描述:
设计函数int getDigit(long long n),计算并返回正整数n的长度。
输入与输出要求:
输入一个正整数n,n的取值范围不会超过long long类型变量。输出该正整数的位数,如“The integer 20 has 2 digits.”,占一行。注意单词digits的单复数形式。
输入样例
1234567890
2
输出样例
The integer 1234567890 has 10 digits.
The integer 2 has 1 digit.
示例代码
#include<stdio.h>
int getDigit(long long int);
int main()
{
long long int x;
scanf("%lld", &x);
if (getDigit(x) == 1)
{
printf("The integer %lld has %d digit.", x, getDigit(x));
}
else
{
printf("The integer %lld has %d digits.", x, getDigit(x));
}
return 0;
}
int getDigit(long long int x)
{
int i = 19;
for (long long int j = 1000000000000000000; x / j == 0; j /= 10)
{
i--;
}
return i;
}
D. 实验5_5_设计函数reverseNum
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
问题描述:
设计函数int reverseNum(int n),返回正整数n反转后的形式,如reverseNum(12345)的值为54321。
输入与输出要求:
输入一个正整数n,n的取值范围不会超过int类型变量,n不会有前导0,n的结尾也不会有0。输出该正整数的反转形式,输出如“The reverse form of number 12345 is 54321.”,占一行。
输入样例
12345
88776
输出样例
The reverse form of number 12345 is 54321.
The reverse form of number 88776 is 67788.
输出样例
#include<stdio.h>
int reverseNum(int);
int main()
{
int x;
scanf("%d", &x);
printf("The reverse form of number %d is %d.", x, reverseNum(x));
return 0;
}
int reverseNum(int x)
{
int ans = 0;
while (x != 0)
{
ans *= 10;
ans += x % 10;
x /= 10;
}
return ans;
}
E. 实验5_6_设计函数mypow
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
问题描述:
设计函数int mypow(int x,int n),返回正整数x的n次幂,如mypow(2,10)值为1024。
输入与输出要求:
输入两个非负整数x、和n,x的n次幂不会超过int型范围。输出计算结果,占一行。
输入样例
2 10
2 30
输出样例
1024
1073741824
示例代码
#include<stdio.h>
int mypow(int, int);
int main()
{
int x, n;
scanf("%d %d", &x, &n);
printf("%d", mypow(x, n));
return 0;
}
int mypow(int x,int n)
{
int ans = 1;
while (n--)
{
ans *= x;
}
return ans;
}
F. 实验5_10_设计函数judgeTriangle
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
问题描述:
设计函数int judgeTriangle(int a,int b,int c),判断a、b、c三边是否能构成三角形,如果能,那么进一步判断是属于哪种三角形(等边、等腰、直角、不规则三角形)。这里的a、b、c没有顺序之分。
当a、b、c三边不能构成三角形时,返回-1;当a、b、c三边构成不规则三角形时,返回0;当a、b、c三边构成直角三角形时,返回1;当a、b、c三边构成等腰三角形时,返回2;当a、b、c三边构成等边三角形时,返回3。
输入与输出要求:
输入三个正整数a、b、c,分别代表三角形的三边,输出判断结果。当无法构成三角形时输出“It is not a triangle.”;当构成不规则三角形时输出“It is a scalenous triangle.”;当构成直角三角形时输出“It is a right-angled triangle.”;当构成等腰三角形时输出“It is an isosceles triangle.”;当构成等边三角形时输出“It is a equilateral triangle.”。
输入样例
13 5 12
5 5 5
8 1 8
1 6 5
3 6 5
输出样例
It is a right-angled triangle.
It is a equilateral triangle.
It is an isosceles triangle.
It is not a triangle.
It is a scalenous triangle.
示例代码
#include<stdio.h>
int judgeTriangle(int, int, int);
int main()
{
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
switch (judgeTriangle(a, b, c))
{
case 0:
printf("It is not a triangle.");
break;
case 1:
printf("It is a equilateral triangle.");
break;
case 2:
printf("It is an isosceles triangle.");
break;
case 3:
printf("It is a right-angled triangle.");
break;
case 4:
printf("It is a scalenous triangle.");
break;
}
return 0;
}
int judgeTriangle(int a,int b,int c)
{
if (a + b > c && a + c > b && b + c > a)
{
if (a == b && a == c && b ==c)
{
return 1;
}
else if (a == b || a == c || b == c)
{
return 2;
}
else if (a * a + b * b == c * c || c * c + b * b == a * a || c * c + a * a == b * b)
{
return 3;
}
else
{
return 4;
}
}
else
{
return 0;
}
}
G. 实验5_11_设计函数isPerfect与printPerfect
运行时间限制: 1000 | 运行内存限制: 65536 |
作者: scshuanghai | 是否specialjudge: False |
题目描述
问题描述:
如果一个整数的各因子(包括1但不包括该整数本身)值之和等于该整数,则该整数称为“完全数”(perfect number)。例如,6是一个完全数,因为6=1+2+3。你的任务是设计函数isPerfect和printPerfect,判断并打印出区间[a,b](1<=a<b<=20000)内的所有完全数,并统计完全数的总个数。
isPerfect函数原型:int isPerfect(int n);用于判断正整数n是否为完全数,若是,则返回值为1,否则为0。
printPerfect函数原型:void printPerfect(int n);用于打印出一个完全数n的所有因子,当执行printPerfect(6)时,打印效果为:6=1+2+3。
输入与输出要求:
输入两个正整数a和b,输出区间[a,b]内的所有完全数及完全数的总个数。
输入样例
1 10000
输出样例
6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248
8128=1+2+4+8+16+32+64+127+254+508+1016+2032+4064
The total number is 4.
示例代码
#include<stdio.h>
int isPerfect(int);
void printPerfect(int);
int main()
{
int a, b, count = 0;
scanf("%d %d", &a, &b);
for (int i = a; i <= b; i++)
{
if (isPerfect(i))
{
count++;
}
}
printf("The total number is %d.", count);
return 0;
}
int isPerfect(int x)
{
int sum = 0;
for (int i = 1; i < x; i++)
{
if (x % i == 0)
{
sum += i;
}
}
if (sum == x)
{
printPerfect(x);
return 1;
}
return 0;
}
void printPerfect(int x)
{
printf("%d=1", x);
for (int i = 2; i < x; i++)
{
if (x % i == 0)
{
printf("+%d", i);
}
}
printf("\n");
}