课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。
A. 3数求平均
Description
输入3个整数,输出它们的平均值,保留3位小数
Input
3个整数
Output
3数的平均值,要求输出3位小数
Sample Input
3 5 2
Sample Output
3.333
HINT
#include <iostream> #include <iomanip> using namespace std; int main( ) { int a, b, c; double x; cin>>a>>b>>c; x=(a+b+c)/3.0; cout<<setiosflags(ios::fixed)<<setprecision(3)<<x<<endl; return 0; }
B. 买就打折,不买打骨折
Description
新年到了,商场狂打折。一件衣服x元,消费满y元,可打八五折。输入购买衣服的件数n,输出需要支付的金额(元),保留两位小数。
Input
衣服单价x(元),打折的最低消费y(元),购买衣服的件数n
Output
输出需要支付的金额(元),保留两位小数。
Sample Input
95.5 300 5
Sample Output
405.88
HINT
#include <iostream> #include <iomanip> using namespace std; int main( ) { double x, y, s; int n; cin>>x>>y>>n; s = x * n; if(s>y) s*=0.85; cout<<setiosflags(ios::fixed)<<setprecision(2)<<s<<endl; return 0; }
C. 奇偶各几何?
Description
输入若干个整数,统计并输出其中的奇数、偶数分别有几个
Input
若干个整数,个数不定
Output
这些整数中奇数和偶数的个数
Sample Input
11 42 45 67 12 78 34
Sample Output
3 4
HINT
用下面的循环,当输入结束时,循环结束。键盘输入数据时, 需要用CTRL-Z结束
while(cin>>n)
{
……
}
参考解答:
#include <iostream> #include <iomanip> using namespace std; int main( ) { int odd=0, even=0; int n; while(cin>>n) { if(n%2==0) even++; else odd++; } cout<<odd<<" "<<even<<endl; return 0; }
D. 函数求值
Description
给定的程序用来计算sum=f(0)+f(1)+...+f(n),其中,f(x)=x2+1。输入x和n,输出sum的值。请将下面的程序补充完整:
#include <iostream> using namespace std; int sum(int n); int f(int x); int main( ) { int n; cin>>n; cout<<sum(n)<<endl; return 0; } /*只提交下面的程序*/ int sum(int n) { int x, ____(1)______; for(x=0;____(2)____; x++) ______(3); return s; } _____(4)_________ { return x*x+1; }
Input
n的值,一个整数
Output
sum=f(0)+f(1)+...+f(n),一个整数
Sample Input
4
Sample Output
35
HINT
#include <iostream> using namespace std; int sum(int n); int f(int x); int main( ) { int n; cin>>n; cout<<sum(n)<<endl; return 0; } /*只提交下面的程序*/ int sum(int n) { int x, s=0; for(x=0; x<=n; x++) s+=f(x); return s; } int f(int x) { return x*x+1; }
E. 重复字符串
Description
输入一个字符串,将其重复若干次,例如,输入goal和5,得到的就是球迷的欢呼:goalgoalgoalgoalgoal。
不急着欢呼,先补充完整下面的程序。还需要注意的是,给出的程序段中,还藏着一个小Bug,需要你将其改过来。
#include <iostream> #include <cstdio> using namespace std; void strcopy(char*,char*,int); int main( ) { char str1[80]; char str2[80]; int n; gets(str1); cin>>n; strcopy(str2,str1,4); cout<<str2<<endl; return 0; }
Input
一个待重复的字符串
重复的次数
Output
重复后的文字
Sample Input
goal 5
Sample Output
goalgoalgoalgoalgoal
HINT
#include <iostream> #include <cstdio> using namespace std; void strcopy(char*,char*,int); int main( ) { char str1[80]; char str2[80]; int n; gets(str1); cin>>n; strcopy(str2,str1,n); //这儿有改动 cout<<str2<<endl; return 0; } void strcopy(char *s1, char *s2, int n) { int i,j=0,k; for(i=0;i<n;i++) { k=0; while(s2[k]!='\0') s1[j++] = s2[k++]; } s1[j]='\0'; return; }
F. 用数字造数字
Description
输入一个3位以上的整数,求其中最大的数字最小的数字之间的差。例如:输入8729,输出7(即9-2=7),再如,输入24825,输出6(即8-2=6)。
Input
一个3位以上的整数
Output
输入整数的最大的数字最小的数字之间的差。
Sample Input
8729
Sample Output
7
HINT
可以在分离各数字过程中找最大、最小数字,也可以先将分离好的数字存储在数组中,再从数组中找出最大最小值。
#include <iostream> using namespace std; int main( ) { int n,arr[15],num=0; int i, imax, imin; cin>>n; while(n>0) { arr[num++]=n%10; n/=10; } imax=imin=arr[0]; for(i=1; i<num; i++) { if(imax<arr[i]) imax = arr[i]; if(imin>arr[i]) imin = arr[i]; } cout<<imax-imin; return 0; }
=================== 迂者 贺利坚 CSDN博客专栏================= |== IT学子成长指导专栏 专栏文章的分类目录(不定期更新) ==| |== C++ 课堂在线专栏 贺利坚课程教学链接(分课程年级) ==| |== 我写的书——《逆袭大学——传给IT学子的正能量》 ==| ===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 ===== |