题目描述:
输入总秒数,转换为相应的时、分、秒。
提示:在输出时,请使用下面的格式(变量名不要求一样): printf("%d:%02d:%02d\n", h, m, s);
输入输出格式:
输入:整数
输出:时分秒,整数,西文冒号分隔。
样例输入:
3610
样例输出:
1:00:10
参考代码
#include
int main()
{
int t,h,m,s;
scanf("%d",&t);
h=t/3600;
m=t%3600/60;
s=t%3600%60;
printf("%d:%02d:%02d\n",h,m,s);
return 0;
}
题目描述:
计算银行存款本息。输入存款金额money(单位:元),存期years,年利率rate,计算到期存款本息(保留2位小数)。计算公式如下:
sum=money(1+rate)years
提示:求xy可以使用数学函数pow(x,y),其中x,y均为double型,在程序开始加上:#include
输入输出格式:
输入:存款金额,存期,年利率。均为浮点数,且用逗号分隔
输出:存款本息(保留2位小数)
样例输入:
10000.0,1,0.027
样例输出:
10270.00
参考代码
考虑到pow函数精度问题,此代码未采用
#include
int main()
{
double rate,money,years;
double sum;
scanf("%lf,%lf,%lf",&money,&years,&rate);
sum=(1+rate);
while(--years)
{
sum=sum*(1+rate);
}
sum=money*sum;
printf("%.2lf",sum);
return 0;
}
题目描述:
编写程序检验由三边能否构成三角形,检验方法是任意两边和均要大于第三边。
输入输出格式:
输入:三边长度
输出:若果可以构成,输出YES,否则输出ERROR DATA
样例输入:
1 1 2
样例输出:
ERROR DATA
参考代码
#include
int main()
{
double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
if((a+b)>c&&(a-b)<c&&(b-a)<c)
printf("YES");
else
printf("ERROR DATA");
return 0;
}
题目描述:
输入3个整数,求最大公约数和最小公倍数。
输入输出格式:
输入:3个整数
输出:最大公约数和最小公倍数,空格分隔
样例输入:
2 5 8
样例输出:
1 40
参考代码
#include
int main()
{
int a,b,c;
int x,y;
scanf("%d%d%d",&a,&b,&c);
for (x = a;/* x>0 */; x--)
{
if (a%x== 0 && b%x == 0&&c%x==0)
break;
}
for (y = a; /* x<正无穷 */ ; y++) //第二个分好允许啥都不写
{
if (y%a == 0 && y%b == 0 && y%c == 0)
break;
}
printf("%d %d", x,y);
return 0;
}
题目描述:
求a+aa+aaa+aaaa+… …+aa…a(n个),其中a为1~9之间的整数。
例如:当a = 1, n = 3时,求1+11+111之和;
当a = 5, n =7时,求5+55+555+5555+55555+555555+5555555之和。
输入输出格式:
输入:a和n,空格分隔
输出:和
样例输入:
2 3
样例输出:
246
参考代码
方法一
#include
int main()
{
int a = 0;
int sum = 0;
int tmp = 0;
int n;
scanf("%d%d", &a,&n);
for (int i = 0; i<n; i++)
{
tmp = tmp * 10 + a;
sum += tmp;
}
printf("%d", sum);
return 0;
}
参考代码
方法二
#include
#include
int main()
{
int a, n, i;
scanf_s("%d%d", &a, &n);
int sum = 0;
for (i = a; i < pow(10, n); i = (i * 10) + a)
sum = sum + i;
printf("%d", sum);
return 0;
}
题目描述:
找出N以内的勾股数的个数。要求找出三个整数a、b、c,它们满足以下的条件:
a*a+b*b=c*
a <= b < c <= N
输入输出格式:
输入:N
输出:勾股数的个数
样例输入:
10
样例输出:
2
参考代码
此代码容易超时,应该思考更简单的做法
#include
int main ()
{
int a,b,c;
int N;
int x=0;
scanf("%d",&N);
for(int i=N;i>0;i--)
{for(int j=i-1;j>0;j--)
{for(int k=j;k>0;k--)
{if(i*i==j*j+k*k)x++;}}}
printf("%d",x);
return 0;
}
题目描述:
输入由4个字母构成的英文单词,按如下格式输出字母,该字母的ASCII码以及该字母的后继字符。每行输出数据之间用一个空格分隔。如:
输入输出格式:
输入: 单词
输出:共4行,每行输出字母,该字母的ASCII码,该字母后继字符(空格分隔)
样例输入:
word
样例输出:
w 119 x
o 111 p
r 114 s
d 100 e
参考代码
#include
int main()
{
char a, b, c, d, a3, b3, c3, d3; int a1, b1, c1, d1, a2, b2, c2, d2;
scanf("%c", &a);
scanf("%c", &b);
scanf("%c", &c);
scanf("%c", &d); //必须一个一个输入,如果题目是输入w o r d,才可以用scanf("%c%c%c%c", &a,&b,&c,&d);(%c%c%c%c默认会有空格,而原题不需要空格)
a1 = a, a2 = a1 + 1, a3 = a2;
b1 = b, b2 = b1 + 1, b3 = b2;
c1 = c, c2 = c1 + 1, c3 = c2;
d1 = d, d2 = d1 + 1, d3 = d2;
printf("%c %d %c\n%c %d %c\n%c %d %c\n%c %d %c", a, a1, a3, b, b1, b3, c, c1, c3, d, d1, d3);
return 0;
}