园林建设网站,营销型网站的建站步骤是什么意思,开发网站的软件,建设银行青海省分行招聘网站欢迎来到英杰社区https://bbs.csdn.net/topics/617804998
目录 1、练习2-1 Programming in C is fun!
2、练习2-3 输出倒三角图案
3、练习2-4 温度转换
4、练习2-6 计算物体自由下落的距离
5、练习2-8 计算摄氏温度
6、练习2-9 整数四则运算
7、练习2-10 计算分段函数[1…欢迎来到英杰社区https://bbs.csdn.net/topics/617804998
目录 1、练习2-1 Programming in C is fun!
2、练习2-3 输出倒三角图案
3、练习2-4 温度转换
4、练习2-6 计算物体自由下落的距离
5、练习2-8 计算摄氏温度
6、练习2-9 整数四则运算
7、练习2-10 计算分段函数[1]
8、练习2-11 计算分段函数[2]
9、练习2-12 输出华氏-摄氏温度转换表
10、练习2-13 求N分之一序列前N项和
11、练习2-14 求奇数分之一序列前N项和
12、练习2-15 求简单交错序列前N项和
13、练习2-17 生成3的乘方表
14、练习2-18 求组合数
15、习题2-1 求整数均值
16、习题2-2 阶梯电价
17、习题2-3 求平方与倒数序列的部分和
18、习题2-4 求交错序列前N项和
19、习题2-5 求平方根序列前N项和
20、习题2-6 求阶乘序列前N项和
21、练习3-2 计算符号函数的值
22、练习3-4 统计字符
23、练习3-5 输出闰年
24、练习3-7 成绩转换
25、练习3-8 查询水果价格
26、习题3-1 比较大小
27、习题3-2 高速公路超速处罚
28、习题3-3 出租车计价
29、习题3-4 统计学生成绩
30、习题9-1 时间换算
31、习题9-3 平面向量加法
32、习题9-4 查找书籍
33、习题9-5 通讯录排序
34、练习4-6 猜数字游戏
35、练习4-7 求e的近似值
36、练习4-10 找出最小值
37、练习4-11 统计素数并求和
38、习题4-1 求奇数和
39、习题4-2 求幂级数展开的部分和
40、习题4-3 求分数序列前N项和
41、习题4-4 特殊a串数列求和
42、习题4-6 水仙花数
43、习题4-7 最大公约数和最小公倍数
44、习题7-5 找鞍点
45、练习5-1 求m到n之和
46、练习5-2 找两个数中最大者
47、练习5-3 数字金字塔
48、习题5-1 符号函数
49、习题5-2 使用函数求奇数和
50、习题5-3 使用函数计算两点间的距离 1、练习2-1 Programming in C is fun!
本题要求编写程序输出一个短句“Programming in C is fun!”。
输入格式:
本题目没有输入。
输出格式:
在一行中输出短句“Programming in C is fun!”。
代码
#includestdio.h
int main()
{printf(Programming in C is fun!\n);}
2、练习2-3 输出倒三角图案
本题要求编写程序输出指定的由“*”组成的倒三角图案。
输入格式:
本题目没有输入。
输出格式:
按照下列格式输出由“*”组成的倒三角图案。 * * * ** * ** ** 代码:
#includestdio.h
int main()
{printf(* * * *\n);printf( * * *\n);printf( * *\n);printf( *\n);return 0;
}
3、练习2-4 温度转换
本题要求编写程序计算华氏温度150°F对应的摄氏温度。计算公式C5×(F−32)/9式中C表示摄氏温度F表示华氏温度输出数据要求为整型。
输入格式:
本题目没有输入。
输出格式:
按照下列格式输出
fahr 150, celsius 计算所得摄氏温度的整数值
代码
#includestdio.h
int main()
{int F150;printf(fahr 150, celsius %d\n,5*(F-32)/9);
}
4、练习2-6 计算物体自由下落的距离
一个物体从100米的高空自由落下。编写程序求它在前3秒内下落的垂直距离。设重力加速度为10米/秒 ^2^。
输入格式:
本题目没有输入。
输出格式: 按照下列格式输出 height 垂直距离值 结果保留2位小数。 代码
#includestdio.h
#includemath.h
int main()
{int g10;int t3;printf(height %.2lf\n,(double)(g/2*(int)pow(t,2)));
} 5、练习2-8 计算摄氏温度
给定一个华氏温度F本题要求编写程序计算对应的摄氏温度C。计算公式C5×(F−32)/9。题目保证输入与输出均在整型范围内。
输入格式:
输入在一行中给出一个华氏温度。
输出格式:
在一行中按照格式“Celsius C”输出对应的摄氏温度C的整数值。
输入样例:
150
输出样例:
Celsius 65
代码
#includestdio.h
int main()
{int c;scanf(%d\n,c);printf(Celsius %d\n,5*(c-32)/9);
}
6、练习2-9 整数四则运算
本题要求编写程序计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。
输入格式:
输入在一行中给出2个正整数A和B。
输出格式:
在4行中按照格式“A 运算符 B 结果”顺序输出和、差、积、商。
输入样例:
3 2
输出样例:
3 2 5 3 - 2 1 3 * 2 6 3 / 2 1
代码
#includestdio.h
int main()
{int m,n;scanf(%d %d\n,m,n);if(n!0){printf(%d %d %d\n,m,n,mn);printf(%d - %d %d\n,m,n,m-n);printf(%d * %d %d\n,m,n,m*n);printf(%d / %d %d\n,m,n,m/n);}return 0;
}
7、练习2-10 计算分段函数[1]
本题目要求计算下列分段函数f(x)的值 输入格式: 输入在一行中给出实数x。 输出格式: 在一行中按“f(x) result”的格式输出其中x与result都保留一位小数。 输入样例1: 10 输出样例1: f(10.0) 0.1 输入样例2: 0 输出样例2: f(0.0) 0.0 代码
#includestdio.hint main()
{double x;scanf(%lf\n,x);if(x0) printf(f(%.1lf) %.1lf\n,x,x);else printf(f(%.1lf) %.1lf\n,x,1/x);return 0;
}
8、练习2-11 计算分段函数[2]
本题目要求计算下列分段函数f(x)的值 注可在头文件中包含 math.h 并调用 sqrt 函数求平方根调用 pow 函数求幂。 输入格式: 输入在一行中给出实数x。 输出格式: 在一行中按“f(x) result”的格式输出其中x与result都保留两位小数。 输入样例1: 10 输出样例1: f(10.00) 3.16 输入样例2: -0.5 输出样例2: f(-0.50) -2.75 代码
#includestdio.h
#includemath.h
int main()
{double x;scanf(%lf\n,x);if(x0) printf(f(%.2lf) %.2lf\n,x,pow(x,0.5));else printf(f(%.2lf) %.2lf\n,x,pow(x1,2)2.0*x1/x);return 0;
}
9、练习2-12 输出华氏-摄氏温度转换表 输入2个正整数lower和upperlower≤upper≤100请输出一张取值范围为[lowerupper]、且每次增加2华氏度的华氏-摄氏温度转换表。 温度转换的计算公式C5×(F−32)/9其中C表示摄氏温度F表示华氏温度。 输入格式: 在一行中输入2个整数分别表示lower和upper的值中间用空格分开。 输出格式: 第一行输出fahr celsius 接着每行输出一个华氏温度fahr整型与一个摄氏温度celsius占据6个字符宽度靠右对齐保留1位小数。 若输入的范围不合法则输出Invalid.。 输入样例1: 32 35 输出样例1: fahr celsius 32 0.0 34 1.1 输入样例2: 40 30 输出样例2: Invalid. 代码
#includestdio.h
int main()
{int lower,upper;int i;scanf(%d %d,lower,upper);if(lowerupper){printf(fahr celsius\n);for(ilower;iupper;i2){printf(%d%6.1lf\n,i,(double)(5.0*(i-32)/9.0));}}else printf(Invalid.\n);return 0;
} 10、练习2-13 求N分之一序列前N项和
本题要求编写程序计算序列 1 1/2 1/3 ... 的前N项之和。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中按照“sum S”的格式输出部分和的值S精确到小数点后6位。题目保证计算结果不超过双精度范围。 输入样例: 6 输出样例: sum 2.450000 代码
#includestdio.hint main()
{int n;scanf(%d,n);int i;double sum0.0;for(i1;in;i){sum1.0/i;}printf(sum %.6lf\n,sum);return 0;
} 11、练习2-14 求奇数分之一序列前N项和
本题要求编写程序计算序列 1 1/3 1/5 ... 的前N项之和。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中按照“sum S”的格式输出部分和的值S精确到小数点后6位。题目保证计算结果不超过双精度范围。 输入样例: 23 输出样例: sum 2.549541 代码
#includestdio.h
int main()
{int n;scanf(%d,n);int i;double sum0.0;int d1;for(i1;in;i){sum1.0/d;d2;}printf(sum %.6lf\n,sum);return 0;
}
12、练习2-15 求简单交错序列前N项和
本题要求编写程序,计算序列 1 - 1/4 1/7 - 1/10 ... 的前N项之和。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中按照“sum S”的格式输出部分和的值S精确到小数点后三位。题目保证计算结果不超过双精度范围。 输入样例: 10 输出样例: sum 0.819 代码
#includestdio.h
int main()
{int n;int l1;scanf(%d,n);int i;double sum0.0;int d1;for(i1;in;i){sum1.0/d*l;d3;l-l;}printf(sum %.3lf\n,sum);return 0;
}
13、练习2-17 生成3的乘方表
输入一个非负整数n生成一张3的乘方表输出3^0^~3^n^的值。可调用幂函数计算3的乘方。 输入格式: 输入在一行中给出一个非负整数n。 输出格式: 按照幂的递增顺序输出n1行每行格式为“pow(3,i) 3的i次幂的值”。题目保证输出数据不超过长整型整数的范围。 输入样例: 3 输出样例: pow(3,0) 1 pow(3,1) 3 pow(3,2) 9 pow(3,3) 27 代码
#includestdio.h
#includemath.h
int main()
{int n;scanf(%d,n);int i;for(i0;in;i){printf(pow(3,%d) %d\n,i,(int)pow(3,i));}return 0;
}
14、练习2-18 求组合数
本题要求编写程序根据公式C ~n~^m^m!(n−m)!n! 算出从n个不同元素中取出m个元素m≤n的组合数。 建议定义和调用函数fact(n)计算n!其中n的类型是int函数类型是double。 输入格式: 输入在一行中给出两个正整数m和nm≤n以空格分隔。 输出格式: 按照格式“result 组合数计算结果”输出。题目保证结果在double类型范围内。 输入样例: 2 7 输出样例: result 21 代码
#includestdio.hdouble fun(int n)
{int i;double t1.0;for(i1;in;i){t*i;}return t;
}
int main()
{int m,n;scanf(%d %d,m,n);double resultfun(n)/(fun(m)*fun(n-m));printf(result %.0lf\n,result);
} 15、习题2-1 求整数均值
本题要求编写程序计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。 输入格式: 输入在一行中给出4个整数其间以空格分隔。 输出格式: 在一行中按照格式“Sum 和; Average 平均值”顺序输出和与平均值其中平均值精确到小数点后一位。 输入样例: 1 2 3 4 输出样例: Sum 10; Average 2.5 代码
#includestdio.h
int main()
{int a1,a2,a3,a4;scanf(%d %d %d %d,a1,a2,a3,a4);printf(Sum %d; Average %.1lf\n,a1a2a3a4,(double)(a1a2a3a4)/4.0);return 0;
}
16、习题2-2 阶梯电价
为了提倡居民节约用电某省电力公司执行“阶梯电价”安装一户一表的居民用户电价分为两个“阶梯”月用电量50千瓦时含50千瓦时以内的电价为0.53元/千瓦时超过50千瓦时的超出部分的用电量电价上调0.05元/千瓦时。请编写程序计算电费。 输入格式: 输入在一行中给出某用户的月用电量单位千瓦时。 输出格式: 在一行中输出该用户应支付的电费元结果保留两位小数格式如“cost 应付电费值”若用电量小于0则输出Invalid Value!。 输入样例1: 10 输出样例1: cost 5.30 输入样例2: 100 输出样例2: cost 55.50 代码
#includestdio.h
int main()
{int n;scanf(%d,n);if(n50){if(n0) printf(Invalid Value!\n);else printf(cost %.2lf\n,n*0.53);}else printf(cost %.2lf\n,(50*0.53)(n-50)*(0.530.05));return 0;
}
17、习题2-3 求平方与倒数序列的部分和
本题要求对两个正整数m和nm≤n编写程序计算序列和m^2^1/m(m1)^2^1/(m1)⋯n^2^1/n。 输入格式: 输入在一行中给出两个正整数m和nm≤n其间以空格分开。 输出格式: 在一行中按照“sum S”的格式输出部分和的值S精确到小数点后六位。题目保证计算结果不超过双精度范围。 输入样例: 5 10 输出样例: sum 355.845635 代码
#includestdio.h
int main()
{int m,n;scanf(%d %d,m,n);int i;if(mnm!0n!0){double sum0.0;for(im;in;i){sum(double)pow(i,2)1.0/i;}printf(sum %.6lf\n,sum);}return 0;
} 18、习题2-4 求交错序列前N项和
本题要求编写程序计算交错序列 1-2/33/5-4/75/9-6/11... 的前N项之和。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中输出部分和的值结果保留三位小数。 输入样例: 5 输出样例: 0.917 代码
#includestdio.h
int main()
{int n;scanf(%d,n);int i;if(n!0){double sum0.0;int t11;int t21;int temp1;for(i1;in;i){sum((double)t1/t2)*temp;t1;t22;temp-temp;}printf(%.3lf\n,sum);}return 0;
}
19、习题2-5 求平方根序列前N项和
本题要求编写程序计算平方根序列123⋯的前N项之和。可包含头文件math.h并调用sqrt函数求平方根。 输入格式: 输入在一行中给出一个正整数N。 输出格式: 在一行中按照“sum S”的格式输出部分和的值S精确到小数点后两位。题目保证计算结果不超过双精度范围。 输入样例: 10 输出样例: sum 22.47 代码
#includestdio.h
#includemath.h
int main()
{int n;scanf(%d,n);int i;//if(n!0){double sum0.0;for(i1;in;i){sumsqrt((double)i);}printf(sum %.2lf\n,sum);//}return 0;
}
20、习题2-6 求阶乘序列前N项和
本题要求编写程序计算序列 1!2!3!⋯ 的前N项之和。 输入格式: 输入在一行中给出一个不超过12的正整数N。 输出格式: 在一行中输出整数结果。 输入样例: 5 输出样例: 153 代码
#includestdio.h
#includemath.h
int main()
{int n;scanf(%d,n);int i;//if(n!0){long long sum0;for(i1;in;i){sumfun(i);}printf(%lld\n,sum);//}return 0;
}
int fun(int n)
{int i;long long t1;for(i1;in;i){tt*i;}// printf(t%lld\n,t);return t;
}
21、练习3-2 计算符号函数的值
对于任一整数n符号函数sign(n)的定义如下 请编写程序计算该函数对任一输入整数的值。 输入格式: 输入在一行中给出整数n。 输出格式: 在一行中按照格式“sign(n) 函数值”输出该整数n对应的函数值。 输入样例1: 10 输出样例1: sign(10) 1 输入样例2: 0 输出样例2: sign(0) 0 输入样例3: -98 输出样例3: sign(-98) -1 代码
#includestdio.h
int main()
{int n;scanf(%d,n);if(n0){if(n0) printf(sign(%d) 1\n,n);else printf(sign(%d) 0\n,n);}else printf(sign(%d) -1\n,n);
}
22、练习3-4 统计字符
本题要求编写程序输入10个字符统计其中英文字母、空格或回车、数字字符和其他字符的个数。 输入格式: 输入为10个字符。最后一个回车表示输入结束不算在内。 输出格式: 在一行内按照 letter 英文字母个数, blank 空格或回车个数, digit 数字字符个数, other 其他字符个数 的格式输出。 输入样例: aZ 09 Az 输出样例: letter 4, blank 3, digit 2, other 1 代码
#includestdio.h
int main()
{char str[10];int i;int letter0;int blank0;int digit0;int other0;for(i0;i10;i){scanf(%c,str[i]);if(str[i]astr[i]z||str[i]Astr[i]Z) letter;else if(str[i] ||str[i]\n) blank;else if(str[i]0str[i]9) digit;else other;}printf(letter %d, blank %d, digit %d, other %d\n,letter,blank,digit,other);return 0;
} 23、练习3-5 输出闰年
输出21世纪中截止某个年份以来的所有闰年年份。注意闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。 输入格式: 输入在一行中给出21世纪的某个截止年份。 输出格式: 逐行输出满足条件的所有闰年年份即每个年份占一行。输入若非21世纪的年份则输出Invalid year!。若不存在任何闰年则输出“None”。 输入样例1: 2048 输出样例1: 2004 2008 2012 2016 2020 2024 2028 2032 2036 2040 2044 2048 输入样例2: 2000 输出样例2: Invalid year! 代码
#includestdio.h
int main()
{int n;scanf(%d,n);if(n2001n2100){int temp0;int i;for(i2001;in;i){if((i%40i%100!0)||i%4000){printf(%d\n,i);temp;}}if(temp0) printf(None\n);}elseprintf(Invalid year!\n);return 0;
}
24、练习3-7 成绩转换
本题要求编写程序将一个百分制成绩转换为五分制成绩。转换规则
大于等于90分为A小于90且大于等于80为B小于80且大于等于70为C小于70且大于等于60为D小于60为E。 输入格式: 输入在一行中给出一个整数的百分制成绩。 输出格式: 在一行中输出对应的五分制成绩。 输入样例: 90 输出样例: A 代码
#includestdio.h
int main()
{int n;scanf(%d,n);if(n90) printf(A\n);else{if(n80) printf(B\n);else{if(n70)printf(C\n);else{if(n60) printf(D\n);else printf(E\n);}}}
}
25、练习3-8 查询水果价格
给定四种水果分别是苹果apple、梨pear、桔子orange、葡萄grape单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。
首先在屏幕上显示以下菜单 [1] apple [2] pear [3] orange [4] grape [0] exit 用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时程序应自动退出查询不到5次而用户输入0即退出输入其他编号显示价格为0。
输入格式: 输入在一行中给出用户连续输入的若干个编号。 输出格式: 首先在屏幕上显示菜单。然后对应用户的每个输入在一行中按格式“price 价格”输出查询结果其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时程序结束。 输入样例1:
3 -1 0 2
输出样例1:
[1] apple [2] pear [3] orange [4] grape [0] exit price 4.10 price 0.00
输入样例2:
1 2 3 3 4 4 5 6 7 8
输出样例2: [1] apple [2] pear [3] orange [4] grape [0] exit price 3.00 price 2.50 price 4.10 price 4.10 price 10.20 代码
#includestdio.h
int main()
{int n;int arr[1000];int i0;while(scanf(%d,arr[i])!EOFarr[i]!0){i;}int ti;printf([1] apple\n);printf([2] pear\n);printf([3] orange\n);printf([4] grape\n);printf([0] exit\n);int l1;for(i0;it;i){if(arr[i]!0l5){if(arr[i]1) printf(price 3.00\n);else if(arr[i]2) printf(price 2.50\n);else if(arr[i]3) printf(price 4.10\n);else if(arr[i]4) printf(price 10.20\n);else printf(price 0.00\n);l;}}return 0;
} 26、习题3-1 比较大小
本题要求将输入的任意3个整数从小到大输出。 输入格式: 输入在一行中给出3个整数其间以空格分隔。 输出格式: 在一行中将3个整数从小到大输出其间以“-”相连。 输入样例: 4 2 8 输出样例: 2-4-8 代码
#includestdio.h
int main()
{int arr[3];scanf(%d %d %d,arr[0],arr[1],arr[2]);int i;int index;int temp;int j;for(i0;i2;i){indexi;temparr[i];for(ji1;j3;j){if(arr[j]arr[index]) indexj;}arr[i]arr[index];arr[index]temp;}printf(%d-%d-%d\n,arr[0],arr[1],arr[2]);return 0;
}
27、习题3-2 高速公路超速处罚
按照规定在高速公路上行使的机动车达到或超出本车道限速的10%则处200元罚款若达到或超出50%就要吊销驾驶证。请编写程序根据车速和限速自动判别对该机动车的处理。 输入格式: 输入在一行中给出2个正整数分别对应车速和限速其间以空格分隔。 输出格式: 在一行中输出处理意见若属于正常行驶则输出“OK”若应处罚款则输出“Exceed x%. Ticket 200”若应吊销驾驶证则输出“Exceed x%. License Revoked”。其中x是超速的百分比精确到整数。 输入样例1: 65 60 输出样例1: OK 输入样例2: 110 100 输出样例2: Exceed 10%. Ticket 200 输入样例3: 200 120 输出样例3: Exceed 67%. License Revoked 代码
#includestdio.h
int main()
{int m; //车速int n; //限速scanf(%d %d,m,n);int t1nn*0.1;int t2nn*0.5;// printf(%d %d\n,t1,t2);if(mt1) printf(OK\n);if(mt1mt2){double temp1(m-n)/(double)n*100.0;double temp2temp1-(int)temp1;int temp;if(temp20.5) temp(int)temp11;else temp(int)temp1;printf(Exceed %d%%. Ticket 200\n,temp);}if(mt2){double temp1(m-n)/(double)n*100.0;double temp2temp1-(int)temp1;int temp;if(temp20.5) temp(int)temp11;else temp(int)temp1;printf(Exceed %d%%. License Revoked\n,temp);}
}
28、习题3-3 出租车计价
本题要求根据某城市普通出租车收费标准编写程序进行车费计算。具体标准如下 起步里程为3公里起步费10元超起步里程后10公里内每公里2元超过10公里以上的部分加收50%的回空补贴费即每公里3元营运过程中因路阻及乘客要求临时停车的按每5分钟2元计收不足5分钟则不收费。 输入格式:
输入在一行中给出输入行驶里程单位为公里精确到小数点后1位与等待时间整数单位为分钟其间以空格分隔。
输出格式:
在一行中输出乘客应支付的车费单位为元结果四舍五入保留到元。
输入样例1:
2.6 2
输出样例1:
10
输入样例2:
5.1 4
输出样例2:
14
输入样例3:
12.5 9
输出样例3:
34
代码
#includestdio.h
int main()
{double k;int fen;scanf(%lf %d,k,fen);double money1fen/5*2.0;double money210.0;double money;if(k3.0) moneymoney1money2;else{if(k10.0) moneymoney1money2(k-3.0)*2.0;if(k10.0) moneymoney1money2(10.0-3.0)*2.0(k-10.0)*3.0;}printf(%.0lf\n,money);return 0;
} 29、习题3-4 统计学生成绩
本题要求编写程序读入N个学生的百分制成绩统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则 大于等于90分为A小于90且大于等于80为B小于80且大于等于70为C小于70且大于等于60为D小于60为E。 输入格式:
输入在第一行中给出一个正整数N≤1000即学生人数第二行中给出N个学生的百分制成绩其间以空格分隔。
输出格式:
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布数字间以空格分隔行末不得有多余空格。
输入样例:
7 77 54 92 73 60 65 69
输出样例:
1 0 2 3 1
代码
#includestdio.hint main()
{int N;scanf(%d,N);int i;int arr[5]{0};int m;for(i0;iN;i){scanf(%d,m);if(m90)arr[0];else if(m90m80) arr[1];else if(m80m70) arr[2];else if(m70m60) arr[3];else arr[4];}for(i0;i5;i){if(i5-1) printf(%d\n,arr[i]);else printf(%d ,arr[i]);}return 0;
} 30、习题9-1 时间换算
本题要求编写程序以hh:mm:ss的格式输出某给定时间再过n秒后的时间值超过23:59:59就从0点开始计时。
输入格式
输入在第一行中以hh:mm:ss的格式给出起始时间第二行给出整秒数n60。
输出格式
输出在一行中给出hh:mm:ss格式的结果时间。
输入样例
11:59:40 30
输出样例
12:00:10
代码
#includestdio.h
int main()
{int hh, mm, ss;scanf(%d:%d:%d,hh,mm,ss);int n;scanf(%d,n);ss ss n;mm (ss - ss%60) 0, ss % 60;hh (mm - mm%60) 0, mm % 60;hh % 24;printf(%02d:%02d:%02d,hh,mm,ss);return 0;
} 31、习题9-3 平面向量加法
本题要求编写程序计算两个二维平面向量的和向量。
输入格式:
输入在一行中按照“x~1~ y~1~ x~2~ y~2~ ”的格式给出两个二维平面向量v~1~(x~1~, y~1~) 和v~2~(x~2~ ,y~2~) 的分量。
输出格式:
在一行中按照(x, y)的格式输出和向量坐标输出小数点后一位注意不能输出−0.0。
输入样例:
3.5 -2.7 -13.9 8.7
输出样例:
(-10.4, 6.0)
代码:
#include stdio.h
#include math.h
int main(){double x1,y1,x2,y2;double res1,res2;scanf(%lf %lf %lf %lf,x1,y1,x2,y2);res1x1x2;res2y1y2;if(fabs(res1)0.05){res10.0;//如果满足则置为零}if(fabs(res2)0.05){res10.0;}printf((%.1f, %.1f),res1,res2);
} 32、习题9-4 查找书籍
给定n本书的名称和定价本题要求编写程序查找并输出其中定价最高和最低的书的名称和定价。
输入格式:
输入第一行给出正整数n10随后给出n本书的信息。每本书在一行中给出书名即长度不超过30的字符串随后一行中给出正实数价格。题目保证没有同样价格的书。
输出格式:
在一行中按照“价格, 书名”的格式先后输出价格最高和最低的书。价格保留2位小数。 输入样例: 3Programming in C21.5Programming in VB18.5Programming in Delphi25.0 输出样例: 25.00, Programming in Delphi8.50, Programming in VB 代码:
#include stdio.h // 引入标准输入输出库
#include string.h // 引入字符串处理库
struct book{ // 定义一个结构体类型book包含书名和价格两个成员char bookname[31]; // 书名长度为31的字符数组double price; // 价格浮点数类型
}ch[10]; // 定义一个结构体数组ch包含10个book类型的元素
int main(){ // 主函数int n,i; // 定义整型变量n和idouble max,min; // 定义浮点型变量max和minint maxi,mini; // 定义整型变量maxi和miniscanf(%d,n); // 从标准输入读取一个整数赋值给ngetchar(); // 读取一个字符但不使用for(i0;in;i){ // 循环n次gets(ch[i].bookname); // 从标准输入读取一行字符串存储到ch[i].bookname中scanf(%lf,ch[i].price); // 从标准输入读取一个浮点数赋值给ch[i].pricegetchar(); // 读取一个字符但不使用}maxminch[0].price; // 将ch[0].price的值赋给max和minmaximini0; // 将0赋给maxi和minifor(i1;in;i){ // 循环n-1次if(maxch[i].price){ // 如果ch[i].price大于maxmaxch[i].price; // 将ch[i].price的值赋给maxmaxii; // 将i赋给maxi}if(minch[i].price){ // 如果ch[i].price小于minminch[i].price; // 将ch[i].price的值赋给minminii; // 将i赋给mini}}printf(%.2f, %s\n,ch[maxi].price,ch[maxi].bookname); // 打印价格最高的图书的价格和书名printf(%.2f, %s,ch[mini].price,ch[mini].bookname); // 打印价格最低的图书的价格和书名
} 33、习题9-5 通讯录排序 输入n个朋友的信息包括姓名、生日、电话号码本题要求编写程序按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。 输入格式: 输入第一行给出正整数n10。随后n行每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息其中“姓名”是长度不超过10的英文字母组成的字符串“生日”是yyyymmdd格式的日期“电话号码”是不超过17位的数字及、-组成的字符串。 输出格式:
按照年龄从大到小输出朋友的信息格式同输出。
输入样例: 3zhang 19850403 13912345678wang 19821020 86-0571-88018448qian 19840619 13609876543 输出样例: wang 19821020 86-0571-88018448qian 19840619 13609876543zhang 19850403 13912345678 代码: #includestdio.hstruct friends{char name[20];int birth;char number[30];
}num[15],temp;
int main()
{int n,i,j;scanf(%d,n);for(i0; in; i){ scanf(%s,num[i].name);scanf(%d,num[i].birth);scanf(%s,num[i].number ) ; }for(i0;in-1;i){for(j0;jn-1-i;j){if(num[j].birthnum[j1].birth){tempnum[j1];num[j1]num[j];num[j]temp;}}}for(i0;in;i){printf(%s %d ,num[i].name,num[i].birth);puts(num[i].number);} return 0;
}34、练习4-6 猜数字游戏 猜数字游戏是令游戏机随机产生一个100以内的正整数用户输入一个数对其进行猜测需要你编写程序自动对其与随机产生的被猜数进行比较并提示大了“Too big”还是小了“Too small”相等表示猜到了。如果猜到则结束程序。程序还要求统计猜的次数如果1次猜出该数提示“Bingo!”如果3次以内猜到该数则提示“Lucky You!”如果超过3次但是在N3次以内包括第N次猜到该数则提示“Good Guess!”如果超过N次都没有猜到则提示“Game Over”并结束程序。如果在到达N次之前用户输入了一个负数也输出“Game Over”并结束程序。 输入格式: 输入第一行中给出两个不超过100的正整数分别是游戏机产生的随机数、以及猜测的最大次数N。最后每行给出一个用户的输入直到出现负数为止。 输出格式:
在一行中输出每次猜测相应的结果直到输出猜对的结果或“Game Over”则结束。
输入样例: 58 47050565860-2 输出样例:
Too big Too small Too small Good Guess!
代码
#include stdio.h
int main(){// randNum随机数 guessNum用户猜测数 N次数 flag标志int randNum, guessNum, N, flag 0;scanf(%d %d, randNum, N);for( int i1; iN; i ){ //循环输入N次结束scanf(%d, guessNum);if( guessNum 0 ) // 输入不合法break;if( guessNum randNum ) // 输入太大printf(Too big\n);else if( guessNum randNum ) // 输入太小printf(Too small\n);else if( guessNum randNum ){ // 相等if( i 1 ) // 1次成功printf(Bingo!\n);else if( i 3 ) // 3次以内成功printf(Lucky You!\n);else if( i 3 ) // 3次以上成功printf(Good Guess!\n);flag 1;break;}}// 判断是否在N次内猜对if( flag 0 )printf(Game Over\n);return 0;
} 35、练习4-7 求e的近似值
自然常数e可以用级数11/1!1/2!⋯1/n!来近似计算。本题要求对给定的非负整数n求该级数的前n项和。
输入格式:
输入第一行中给出非负整数n≤1000。
输出格式:
在一行中输出部分和的值保留小数点后八位。
输入样例:
10
输出样例:
2.71828180
代码
#includestdio.h
int main()
{int n;double sum1;scanf(%d,n);if(n1000){for(int i1;in;i){double fart1;for(int j1;ji;j){fartfart*j;}sumsum1.0/fart;}printf(%.8f,sum);}return 0;
}36、练习4-10 找出最小值
本题要求编写程序找出给定一系列整数中的最小值。
输入格式
输入在一行中首先给出一个正整数n之后是n个整数其间以空格分隔。
输出格式
在一行中按照“min 最小值”的格式输出n个整数中的最小值。
输入样例
4 -2 -123 100 0
输出样例
min -123
代码
#includestdio.h
int main()
{int n 0;scanf(%d, n);int num 0;scanf(%d, num);int min num;//最小值初始化for (int i 1; i n; i){scanf(%d, num);if (num min)//找到更小值{min num;//改变最小值}}printf(min %d, min);return 0;
} 37、练习4-11 统计素数并求和
本题要求统计给定整数M和N区间内素数的个数并对它们求和。
输入格式:
输入在一行中给出两个正整数M和N1≤M≤N≤500。
输出格式:
在一行中顺序输出M和N区间内素数的个数以及它们的和数字间以空格分隔。
输入样例:
10 31
输出样例:
7 143
代码
#include stdio.h
#include math.hint prime(int i)
{int j 0;for (j 2; j sqrt(i); j){if (i % j 0)return 0;}return 1;
}int main()
{int M, N;int count 0;int sum 0;int i 0;scanf(%d %d, M, N);//判断M的情况if(M 1){M; //如果M输入的是1那么此行的作用就是使下面的for循环从2开始}//如若输入的数为0则不符合题意结束程序else if(M 0 || N 0){printf(0 0);return 0;}for (i M; i N; i){//利用prime()函数判断是否为素数if ((prime(i) 1)){count;sum sum i;}}printf(%d %d\n, count, sum);//10到31之间素数为11,13,17,19,23,29,31return 0;
} 38、习题4-1 求奇数和
本题要求计算给定的一系列正整数中奇数的和。
输入格式:
输入在一行中给出一系列正整数其间以空格分隔。当读到零或负整数时表示输入结束该数字不要处理。
输出格式:
在一行中输出正整数序列中奇数的和。
输入样例:
8 7 4 3 70 5 6 101 -1
输出样例:
116
代码
#include stdio.h
int main(){int x;scanf(%d,x);int sum 0;while(x0){if(x%2!0){sum x;} scanf(%d,x);}printf(%d\n,sum);return 0;
} 39、习题4-2 求幂级数展开的部分和
已知函数e^x^ 可以展开为幂级数1xx^2^/2!x^3^/3!⋯x^k^/k!⋯。现给定一个实数x要求利用此幂级数部分和求e^x^的近似值求和一直继续到最后一项的绝对值小于0.00001。
输入格式:
输入在一行中给出一个实数x∈[0,5]。
输出格式:
在一行中输出满足条件的幂级数部分和保留小数点后四位。
输入样例:
1.2
输出样例:
3.3201
代码
#include stdio.h
#include math.hint main()
{int k 1, i;double x, item 1, s 1, sum 1;scanf(%lf, x);while(fabs(item)0.00001){for(i1; ik; i){sum * i;}item pow(x, k) / sum;s item;k;sum 1;}printf(%.4f, s);return 0;
} 40、习题4-3 求分数序列前N项和
本题要求编写程序计算序列 2/13/25/38/5... 的前N项之和。注意该序列从第2项起每一项的分子是前一项分子与分母的和分母是前一项的分子。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值精确到小数点后两位。题目保证计算结果不超过双精度范围。
输入样例:
20
输出样例:
32.66
代码
#includestdio.h
int main()
{double n;double sum0;scanf(%lf,n);int i,j,k,temp;j2;k1;for(i1;in;i){sumsum(1.0*j)/(k*1.0);tempj;jkj;ktemp; } printf(%.2f,sum);return 0;} 41、习题4-4 特殊a串数列求和
给定两个均不超过9的正整数a和n要求编写程序求aaaaaa⋯aa⋯an个a之和。
输入格式
输入在一行中给出不超过9的正整数a和n。
输出格式
在一行中按照“s 对应的和”的格式输出。
输入样例
2 3
输出样例
s 246
代码
#include math.h
#include string.h
#include stdio.h
double p(int a,int n)
{double sa;for(int i2;in;i){ss*10a;}return s;
}
int main()
{int a,n,i;double s0;scanf(%d %d,a,n);for(i1;in;i){sp(a,i);} printf(s %.0lf,s);return 0;
}42、习题4-6 水仙花数
水仙花数是指一个N位正整数N≥3它的每个位上的数字的N次幂之和等于它本身。例如1531^3^5^3^3^3^。 本题要求编写程序,计算所有N位水仙花数。
输入格式:
输入在一行中给出一个正整数N3≤N≤7。
输出格式:
按递增顺序输出所有N位水仙花数每个数字占一行。
输入样例:
3
输出样例:
153370371407
代码
#includestdio.h
int main()
{int i,n,a;a1;scanf(%d,n);for(i1;in;i){ //准备一个最小的n位数在这里就是100aa*10;}ia;while(ia*10){ //循环到最大的n位数为止int ti;int sum0;do{ //输出该n位数的每位的n次幂int dt%10;tt/10;int p1;int j1;while(jn){pp*d;j;}sumsump;}while(t0);if(sum i){ //如果该n位数每位的n次幂和与该数大小相同则为水仙花数输出该数printf(%d\n,sum);}i;}return 0;
} 43、习题4-7 最大公约数和最小公倍数
本题要求两个给定正整数的最大公约数和最小公倍数。
输入格式:
输入在一行中给出两个正整数M和N≤1000。
输出格式:
在一行中顺序输出M和N的最大公约数和最小公倍数两数字间以1空格分隔。
输入样例:
511 292
输出样例:
73 2044
代码
#includestdio.h
int main()
{int M,N;scanf(%d %d,M,N);int a,b;aM;bN;int temp;tempM%N;while(temp) //辗转相除法求最大公约数{MN;Ntemp;tempM%N;}printf(%d %d\n,N,a*b/N);return 0;
} 44、习题7-5 找鞍点
一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。
本题要求编写程序求一个给定的n阶方阵的鞍点。
输入格式
输入第一行给出一个正整数n1≤n≤6。随后n行每行给出n个整数其间以空格分隔。
输出格式
输出在一行中按照“行下标 列下标”下标从0开始的格式输出鞍点的位置。如果鞍点不存在则输出“NONE”。题目保证给出的矩阵至多存在一个鞍点。
输入样例1
41 7 4 14 8 3 61 6 1 20 7 8 9
输出样例1
2 1
输入样例2
21 74 1
输出样例2
NONE
代码
#includestdio.h
int fun1(int arr[][7],int i,int n)
{int j;int index0;for(j1;jn;j){if(arr[i][j]arr[i][index]) indexj;}return index;
}
int fun2(int arr[][7],int i,int n)
{int j;int index0;for(j1;jn;j){if(arr[j][i]arr[index][i]) indexj;}return index;
}
int main()
{int n;scanf(%d,n);int arr[7][7];int i,j;for(i0;in;i){for(j0;jn;j){scanf(%d,arr[i][j]);}}int l0;int temp1,temp2;for(i0;in;i){temp1fun1(arr,i,n);temp2fun2(arr,temp1,n);if(arr[i][temp1]arr[temp2][temp1]){l1;break;}}if(l1) printf(%d %d\n,temp2,temp1);else printf(NONE\n);return 0;} 45、练习5-1 求m到n之和
本题要求实现一个计算m~nmn之间所有整数的和的简单函数。
函数接口定义
int sum( int m, int n );
其中m和n是用户传入的参数保证有mn。函数返回的是m~n之间所有整数的和。
裁判测试程序样例
#include stdio.hint max( int a, int b );//函数声明 int main()
{ int a, b;scanf(%d %d, a, b);printf(max %d\n, max(a, b));//调用函数返回值给max(a,b) return 0;
}int max( int a, int b )
{int max;if(ab){maxa;}else{maxb;}return max;
}/* 你的代码将被嵌在这里 */
输入样例
-5 8
输出样例
sum 21
代码
int sum(int m, int n){int i;int sum0;for(im;in;i){sumsumi;}return sum;}
46、练习5-2 找两个数中最大者
本题要求对两个整数a和b输出其中较大的数。
函数接口定义
int max( int a, int b );
其中a和b是用户传入的参数函数返回的是两者中较大的数。
裁判测试程序样例
#include stdio.hint max( int a, int b );int main()
{ int a, b;scanf(%d %d, a, b);printf(max %d\n, max(a, b));return 0;
}
/* 你的代码将被嵌在这里 */ 输入样例
-5 8
输出样例
max 8
代码
int max( int a, int b )
{if(ab)return a;else return b;
}
47、练习5-3 数字金字塔
本题要求实现函数输出n行数字金字塔。
函数接口定义
void pyramid( int n );
其中n是用户传入的参数为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注意每个数字后面跟一个空格。
裁判测试程序样例
#include stdio.hvoid pyramid( int n );int main()
{ int n;scanf(%d, n);pyramid(n);return 0;
} /* 你的代码将被嵌在这里 */
输入样例
5
输出样例
12 23 3 34 4 4 45 5 5 5 5
代码:
void pyramid( int n )
{int i;int tempn;for(i1;in;i){int j1;for(;jtemp;j)printf( );for(j1;ji;j){printf(%d ,i);}printf(\n);temp--;}
}
48、习题5-1 符号函数
本题要求实现符号函数sign(x)。
函数接口定义
int sign( int x );
其中x是用户传入的整型参数。符号函数的定义为若x大于0sign(x) 1若x等于0sign(x) 0否则sign(x) −1。
裁判测试程序样例
#include stdio.hint sign( int x );int main()
{int x;scanf(%d, x);printf(sign(%d) %d\n, x, sign(x));return 0;
} /* 你的代码将被嵌在这里 */
输入样例
int sign( int x )
{if(x0) return 1;else if(x0) return 0;else return -1;
}
10
输出样例
sign(10) 1
代码:
int sign( int x )
{if(x0) return 1;else if(x0) return 0;else return -1;
}
49、习题5-2 使用函数求奇数和
本题要求实现一个函数计算N个整数中所有奇数的和同时实现一个判断奇偶性的函数。
函数接口定义
int even( int n ); int OddSum( int List[], int N );
其中函数even将根据用户传入的参数n的奇偶性返回相应值当n为偶数时返回1否则返回0。函数OddSum负责计算并返回传入的N个整数List[]中所有奇数的和。
裁判测试程序样例
#include stdio.h
#define MAXN 10int even( int n );int OddSum( int List[], int N );int main()
{ int List[MAXN], N, i;scanf(%d, N);printf(Sum of ( );for ( i0; iN; i ) {scanf(%d, List[i]);if ( even(List[i])0 )printf(%d , List[i]);}printf() %d\n, OddSum(List, N));return 0;}/* 你的代码将被嵌在这里 */
输入样例
62 -3 7 88 0 15
输出样例
Sum of ( -3 7 15 ) 19
代码:
int even( int n )
{if(n%20) return 1;else return 0;
}int OddSum( int List[], int N )
{int i;int sum0;for(i0;iN;i){if(List[i]%2!0) sumList[i];}return sum;
}
50、习题5-3 使用函数计算两点间的距离
本题要求实现一个函数对给定平面任意两点坐标(x~1~ ,y~1~ )和(x~2~ ,y~2~)求这两点之间的距离。
函数接口定义
double dist( double x1, double y1, double x2, double y2 );
其中用户传入的参数为平面上两个点的坐标(x1, y1)和(x2, y2)函数dist应返回两点间的距离。
裁判测试程序样例
#include stdio.h
#include math.h
double dist( double x1, double y1, double x2, double y2 );
int main()
{ double x1, y1, x2, y2;scanf(%lf %lf %lf %lf, x1, y1, x2, y2);printf(dist %.2f\n, dist(x1, y1, x2, y2));return 0;
}/* 你的代码将被嵌在这里 */
输入样例
10 10 200 100
输出样例
dist 210.24
代码:
double dist( double x1, double y1, double x2, double y2 )
{return sqrt((x1-x2)*(x1-x2)(y1-y2)*(y1-y2));}