1、Anyview 习题 1 /* 【习题 7.010】写一函数求 3个整数中最小的数。 */ int min(int x, int y, int z) /* 返回 3个整数 x,y和 z中最小的数 */ int min; min=xy?y:x; if(minz) min=z; return min; /* 【习题 7.020】编写函数,求用 1元、 5元和 10元三种纸币 支付 n元钱共有多少种支付法? 例如, 16元可有 6种支付方法: 方法 1 2 3 4 5 6 10元 0 0 0 0 1 1 5元 0 1 2 3 0 1 1元 16 11 6 1 6 1 */ int change(in
2、t n) int i,j,k,t=0; for(i=0;i0;i-) stri=stri-1; str0=temp; /* 7.051 系统给定外部字符串 s 和整型数组 c26(不需 要自行定义)。编写程序,将字符串 s 中 26个字母 (不 区分大小写 )出现的次数依次统计到数组 c 中。例如, 当 s=“ AbcijKaBcdEXyzuvwx”时,数组 c 的 26个元素 值依次为: 2 2 2 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 2 1 1。 */ void main() Anyview 习题 3 int i,j; for(j=0;j 8 5
3、 2 7 8 9 7 4 1 */ void invert(char aNN) int i,j,k; for(i=0;i 4 5 6 7 8 9 1 2 3 */ void invertH(char aNN) int temp,i,j; for(i=0;i 6 5 4 7 8 9 9 8 7 */ void invertV(char aNN) int i,j,temp; for(i=0;i 7 5 3 7 8 9 8 9 6 */ void turningClockwise(char aNN) int i; int flog=1; int t=a0N-1; for(i=N-1;i0;i-) a
4、0i=a0i-1; for(i=0;i0;i-) aiN-1=ai-1N-1; a1N-1=t; /* 【习题 7.068】编写函数将一个 NxN的二维数组的 周边元素“逆时针”轮转 1位。 例如:轮转前的数组 轮转后的数组 Anyview 习题 5 1 2 3 2 3 6 4 5 6 - 1 5 9 7 8 9 4 7 8 */ void turningAnticlockwise(char aNN) int i; int t=aN-10; for(i=N-1;i0;i-) ai0=ai-10; for(i=0;i0;i-) aN-1i=aN-1i-1; aN-11=t; /* 【习题 7.0
5、72】编写函数将一个 NxN的二维数组 a 的元素 按行向右轮转 1位。 例如:轮转前的数组 轮转后的数组 1 2 3 3 1 2 4 5 6 - 6 4 5 7 8 9 9 7 8 */ void turningRight(char aNN) int i,j,t; for(i=0;i0;j-) aij=aij-1; ai0=t; /* 【习题 7.075】编写函数将一个 NxN的二维数组 a 的元素 按行向左轮转 1位。 例如:轮转前的数组 轮转后的数组 1 2 3 2 3 1 Anyview 习题 6 4 5 6 - 5 6 4 7 8 9 8 9 7 */ void turningLef
6、t(char aNN) int i,j,t; for(i=0;i 1 2 3 7 8 9 4 5 6 */ void turningDown(char aNN) int i,j,t; for(i=0;i0;j-) aji=aj-1i; a0i=t; /* 【习题 7.085】编写函数将一个 NxN的二维数组 a 的元素 按列向上轮转 1位。 例如:轮转前的数组 轮转后的数组 1 2 3 4 5 6 4 5 6 - 7 8 9 7 8 9 1 2 3 */ Anyview 习题 7 void turningUp(char aNN) int i,j; int tN; for(i=0;in?n:m)
7、; for(i=min;i=1;i-) if(m%i!=0)|(n%i!=0) continue; if(m%i)=0 return k; /* 【习题 7.105】 编写函数,求整数 m和 n的最小公倍数, 并作为函数的返回值。 */ int lcm(int m, int n) int t,r,l,h; t=m+n; n=n=a /* 3 */ ; i+; si=0; /* 7.121 系统给定外部长整型变量 n和字符数组变量 s(不需要自行 定义)。 main函数的功能是:把 n的整数值转换成字符串,并保存 在 s 中。例如,当 n=20120826时,由 n转换得到 s=“2012082
8、6“。 请仅在空缺处填入合适内容,使其实现上述功能。 */ void main() int i=0,k; char c10; while(n0/* 1 */ ) ci=n%10+0 /* 2 */ ; n/=10; i+; si-=0; k=i; while(i=0) si=ck-i/* 3 */ ; i-; /* 【习题 7.125】编写函数,对非负浮点数 r的值的第三位小数四舍五入, 返回保留 2位小数的值。例如:若 r的值为 8.32488,则函数返回 8.32; 若 r的值为 8.32533,则返回 8.33。 */ float func(float r) Anyview 习题 10
9、int t,p; t=(int)(r*1000); p=t%10; r=t/10; r*=0.01; if(p4) r+=0.01; return r; /* 【习题 7.135】假设 n是一个 k(k 2)位的正整数,编写函数, 求出由 n的低 k-1位构成的数并作为函数值返回。例如:若 n值 为 5923,则函数返回 923;若 n值为 923,则函数返回 23。 */ int func(int n) int t=0,x=1; while(n9) t+=(n%10)*x; x*=10; n/=10; return t; /* 【习题 7.175】编写函数,求 n以内(不包括 n)同时能被 3与 7 整除的所有自然数之和的平方根,并作为函数值返回。例如, 若 n为 100时,函数返回值应为 14.49138。 */ float func(int n) int i,s=0; float ans=0; for(i=7;in;i+) if(i%3=0 ans=sqrt(s); return ans;