西安微信网站建设,wordpress 右侧空白,重庆市建设工程信息网官网造价,一级域名的免费网站目录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 使用函数计算两点间的距…目录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 使用函数计算两点间的距离51、习题5-4 使用函数求素数和52、习题5-5 使用函数统计指定数字的个数53、习题5-6 使用函数输出水仙花数54、习题5-7 使用函数求余弦函数的近似值55、习题4-8 高空坠球56、习题4-10 猴子吃桃问题57、习题6-8 统计一行文本的单词个数58、练习7-2 求最大值及其下标59、练习7-3 将数组中的数逆序存放60、练习7-4 找出不是两个数组共有的元素41、习题4-4 特殊a串数列求和给定两个均不超过9的正整数a和n要求编写程序求aaaaaa⋯aa⋯an个a之和。输入格式输入在一行中给出不超过9的正整数a和n。输出格式在一行中按照“s 对应的和”的格式输出。输入样例2 3输出样例s 246代码#includestdio.h
int main()
{int a,n;scanf(%d %d,a,n);int i;int sum0;int ta;for(i1;in;i){sumt;tt*10a;}printf(s %d\n,sum);return 0;
}42、习题4-6 水仙花数水仙花数是指一个N位正整数N≥3它的每个位上的数字的N次幂之和等于它本身。例如153。本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N3≤N≤7。输出格式:按递增顺序输出所有N位水仙花数每个数字占一行。输入样例:3输出样例:153370371407代码#includestdio.h
void fun1(int *m,int *n,int N)
{int i;int t1,t2;t1t21;for(i1;iN-1;i)t1*10;for(i1;iN;i)t2*10;*mt1;*nt2-1;
}int fun2(int n,int N)
{int i;int t;int sum0;int ttn;while(n){t1;int tempn%10;for(i1;iN;i){t*temp;}sumt;n/10;}if(ttsum) return 1;else return 0;
}
int main()
{int N;scanf(%d,N);int m,n;fun1(m,n,N); //找出最小N位数和最大N位数//printf(%d %d\n,m,n);int i;for(im;in;i){int tempfun2(i,N);if(temp1) printf(%d\n,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输入样例141 7 4 14 8 3 61 6 1 20 7 8 9输出样例12 1输入样例221 74 1输出样例2NONE代码#includestdio.hint 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 sum(int m, int n);int main()
{ int m, n;scanf(%d %d, m, n);printf(sum %d\n, sum(m, n));return 0;
}/* 你的代码将被嵌在这里 */输入样例-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输出样例1 2 2 3 3 3 4 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;
}/* 你的代码将被嵌在这里 */输入样例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 10
int 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() %dn, 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.hdouble 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));
}51、习题5-4 使用函数求素数和本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。素数就是只能被1和自身整除的正整数。注意1不是素数2是素数。函数接口定义int prime( int p ); int PrimeSum( int m, int n );其中函数prime当用户传入参数p为素数时返回1否则返回0函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数m≤n。裁判测试程序样例#include stdio.h
#include math.hint prime( int p );
int PrimeSum( int m, int n );int main()
{int m, n, p;scanf(%d %d, m, n);printf(Sum of ( );for( pm; pn; p ) {if( prime(p) ! 0 )printf(%d , p);}printf() %d\n, PrimeSum(m, n));return 0;
}/* 你的代码将被嵌在这里 */输入样例-1 10输出样例Sum of ( 2 3 5 7 ) 17代码int prime( int p )
{if(p2) return 0;else{int i;int l1;for(i2;isqrt(p);i){if(p%i0){l0;break;}}return l;}
}
int PrimeSum( int m, int n )
{int sum0;int i;for(im;in;i){int tempprime(i);if(temp1) sumi;}return sum;
}52、习题5-5 使用函数统计指定数字的个数本题要求实现一个统计整数中指定数字的个数的简单函数。函数接口定义int CountDigit( int number, int digit );其中number是不超过长整型的整数digit为[0, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。裁判测试程序样例#include stdio.hint CountDigit( int number, int digit );int main()
{int number, digit;scanf(%d %d, number, digit);printf(Number of digit %d in %d: %d\n, digit, number, CountDigit(number, digit));return 0;
}/* 你的代码将被嵌在这里 */输入样例-21252 2输出样例Number of digit 2 in -21252: 3代码:int CountDigit( int number, int digit )
{if(number0) number-number;if(number0digit0) return 1;else{int tt0;while(number){int tempnumber%10;if(tempdigit) tt;number/10;}return tt;}
}53、习题5-6 使用函数输出水仙花数水仙花数是指一个N位正整数N≥3它的每个位上的数字的N次幂之和等于它本身。例如1531^3^5^3^3^3^。本题要求编写两个函数一个判断给定整数是否水仙花数另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数。函数接口定义int narcissistic( int number ); void PrintN( int m, int n );函数narcissistic判断number是否为水仙花数是则返回1否则返回0。函数PrintN则打印开区间(m, n)内所有的水仙花数每个数字占一行。题目保证100≤m≤n≤10000。裁判测试程序样例#include stdio.hint narcissistic( int number );
void PrintN( int m, int n );int main()
{int m, n;scanf(%d %d, m, n);if ( narcissistic(m) ) printf(%d is a narcissistic number\n, m);PrintN(m, n);if ( narcissistic(n) ) printf(%d is a narcissistic number\n, n);return 0;
}/* 你的代码将被嵌在这里 */输入样例153 400输出样例153 is a narcissistic number370371代码int narcissistic( int number )
{int nunumber;int temp0;while(nu){nu/10;temp;}nunumber;int sum0;int index;while(number){int i;int tnumber%10;index1;for(i1;itemp;i)index*t;sumindex;number/10;}if(sumnu) return 1;else return 0;
}
void PrintN( int m, int n )
{int i;for(im1;in;i){int tempnarcissistic(i);if(temp1) printf(%d\n,i);}
}54、习题5-7 使用函数求余弦函数的近似值本题要求实现一个函数用下列公式求cos(x)的近似值精确到最后一项的绝对值小于ecos(x) 函数接口定义double funcos( double e, double x );其中用户传入的参数为误差上限e和自变量x函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。裁判测试程序样例#include stdio.h
#include math.hdouble funcos( double e, double x );int main()
{ double e, x;scanf(%lf %lf, e, x);printf(cos(%.2f) %.6f\n, x, funcos(e, x));return 0;
}/* 你的代码将被嵌在这里 */输入样例0.01 -3.14输出样例cos(-3.14) -0.999899代码double funcos( double e, double x )
{int i,j;double temp1;double temp2;double temp;double sum0;int l1;for(i0;;i2){if(i0){temp1.0;}else{temp11;temp21;for(j1;ji;j){temp1*x;temp2*j;}temptemp1/temp2;}sum(temp*l);if(tempe) break;l-l;}return sum;
}55、习题4-8 高空坠球皮球从某给定高度自由落下触地后反弹到原高度的一半再落下再反弹……如此反复。问皮球在第n次落地时在空中一共经过多少距离第n次反弹的高度是多少输入格式:输入在一行中给出两个非负整数分别是皮球的初始高度和n均在长整型范围内。输出格式:在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度其间以一个空格分隔保留一位小数。题目保证计算结果不超过双精度范围。输入样例:33 5输出样例:94.9 1.0代码#includestdio.h
int main()
{double h;int n;scanf(%lf %d,h,n);int i;double sumh;if(n0){printf(0.0 0.0\n);}else{for(i1;in-1;i){if(h0) break;hh/2.0;sumsumhh;}printf(%.1lf %.1lf\n,sum,h/2);}return 0;
}56、习题4-10 猴子吃桃问题一只猴子第一天摘下若干个桃子当即吃了一半还不过瘾又多吃了一个第二天早上又将剩下的桃子吃掉一半又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时见只剩下一个桃子了。问第一天共摘了多少个桃子输入格式:输入在一行中给出正整数N1N≤10。输出格式:在一行中输出第一天共摘了多少个桃子。输入样例:3输出样例:10代码#includestdio.h
int main()
{int N;scanf(%d,N);int i;int t1;for(iN;i1;i--){t(t1)*2;}printf(%d\n,t);
}57、习题6-8 统计一行文本的单词个数本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串各单词之间用空格分隔空格数可以是多个。输入格式:输入给出一行字符。输出格式:在一行中输出单词个数。输入样例:Lets go to room 209.输出样例:5代码#includestdio.h
int main()
{char str[1000];gets(str);int i,j;int lenstrlen(str);i0;jlen-1;while(str[i] ){i;}while(str[j] ){j--;}if(ilenj0) printf(0\n);else{int n1i;int n2j;int temp0;int l0;for(in11;in2;i){if(str[i] str[i-1]! ) {l1;temp;}}printf(%d\n,temp1);}return 0;
}58、练习7-2 求最大值及其下标本题要求编写程序找出给定的n个数中的最大值及其对应的最小下标下标从0开始。输入格式:输入在第一行中给出一个正整数n1n≤10。第二行输入n个整数用空格分开。输出格式:在一行中输出最大值及最大值的最小下标中间用一个空格分开。输入样例:62 8 10 1 9 10输出样例:10 2代码:#includestdio.h
#includemath.h
int main()
{int n;int a[100];scanf(%d\n,n);int i;for(i0;in;i)scanf(%d\,,a[i]);int j;int index;index0;for(i1;in;i){if(a[i]a[index]) indexi;}printf(%d %d\n,a[index],index);
}59、练习7-3 将数组中的数逆序存放本题要求编写程序将给定的n个整数存入数组中将数组中的这n个数逆序存放再按顺序输出数组中的元素。输入格式:输入在第一行中给出一个正整数n1≤n≤10。第二行输入n个整数用空格分开。输出格式:在一行中输出这n个整数的处理结果相邻数字中间用一个空格分开行末不得有多余空格。输入样例:410 8 1 2输出样例:2 1 8 10代码#includestdio.h
int main()
{int arr[11];int n;scanf(%d,n);int i;for(i0;in;i)scanf(%d,arr[i]);for(i0;in/2;i){int tarr[i];arr[i]arr[n-1-i];arr[n-1-i]t;}// arr[n-1]t;for(i0;in;i){if(in-1) printf(%d\n,arr[i]);else printf(%d ,arr[i]);}return 0;
}60、练习7-4 找出不是两个数组共有的元素给定两个整型数组本题要求找出不是两者共有的元素。输入格式:输入分别在两行中给出两个整型数组每行先给出正整数N≤20随后是N个整数其间以空格分隔。输出格式:在一行中按照数字给出的顺序输出不是两数组共有的元素数字间以空格分隔但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。输入样例:10 3 -5 2 8 0 3 5 -15 9 10011 6 4 8 2 6 -5 9 0 100 8 1输出样例:3 5 -15 6 4 1代码#includestdio.h
int temp[100];
int tt0;
void fun(int arr[][22],int n1,int n2)
{int i,j;int l;for(i0;in1;i){int l1;for(j0;jn2;j){if(arr[0][i]arr[1][j]){l0;break;}}if(l1) temp[tt]arr[0][i];}for(i0;in2;i){int l1;for(j0;jn1;j){if(arr[1][i]arr[0][j]){l0;break;}}if(l1) temp[tt]arr[1][i];}
}
int main()
{int arr[2][22];int N;int i,k;int n1,n2;for(k0;k2;k){scanf(%d,N);if(k0) n1N;else n2N;for(i0;iN;i){scanf(%d,arr[k][i]);}}fun(arr,n1,n2);int j;int l;for(i0;itt-1;i){for(ji1;jtt;j){if(temp[j]temp[i])temp[j]-999999;}}for(i0;itt;i){if(temp[i]!-999999){if(i0) printf(%d,temp[i]);else printf( %d,temp[i]);}}printf(\n);return 0;
}