|
本帖最后由 三重岁月 于 2021-5-5 19:18 编辑
6-1 简单输出整数 (10分)
本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。
函数接口定义:
其中N是用户传入的参数。该函数必须将从1到N的全部正整数顺序打印出来,每个数字占1行。
裁判测试程序样例:分析:
主函数只有声明语句和输入语句,题目要求打印从1到N的全部正整数,所以PrintN函数需要循环语句(求和),输出语句,注意每个数字占1行,最后一行无换行符。
C语言程序1:
- void PrintN ( int N ){
- for(int i=1;i<=N;i++){
- printf("%d",i);
- if(i==N) continue;
- printf("\n");
- }
- }
复制代码
6-2 统计个位数字 (15 分)
本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。
函数接口定义:
- int Count_Digit ( const int N, const int D );
复制代码
其中N和D都是用户传入的参数。N的值不超过int的范围;D是[0, 9]区间内的个位数。函数须返回N中D出现的次数。
裁判测试程序样例:
- #include <stdio.h>
- int Count_Digit ( const int N, const int D );
- int main()
- {
- int N, D;
- scanf("%d %d", &N, &D);
- printf("%d\n", Count_Digit(N, D));
- return 0;
- }
复制代码
输入样例:
输出样例:
分析:
本题主函数有输入和输出语句,则Count_Digit函数填写数据的变化过程即可。
由于Count_Digit 函数已限制为常量,所以可以通过建立新变量R接收常量的方式对变量进行修改。
先考虑R>0的特殊情况,当R不为0时,建立新变量M接收R的末尾数字,同时R需要自除10。此时判断M是否与主函数输入的D相同,若相同,建立的计数变量count自加1。直到R被除尽,返回count的值。
再考虑R<0的情况。即相反数。
注意R==0为关键点。如果不返回1,将返回0。
C语言程序1:
- int Count_Digit ( const int N, const int D ){
- int M,count=0;
- int R=N;
- if(R<0) R=-R;
- if(R==0) return 1;
- while(R!=0) {
- M=R%10;
- R=R/10;
- if(M==D) count++;
- }
- return count;
- }
复制代码
6-3 找两个数中最大者 (10 分)
本题要求对两个整数a和b,输出其中较大的数。
函数接口定义:
其中a和b是用户传入的参数,函数返回的是两者中较大的数。
裁判测试程序样例:
- #include <stdio.h>
- #include <math.h>
- int IsSquare( int n );
- int main()
- {
- int n;
- scanf("%d", &n);
- if ( IsSquare(n) ) printf("YES\n");
- else printf("NO\n");
- return 0;
- }
- /* 你的代码将被嵌在这里 */
复制代码
输入样例:
- <div>-5 8</div><div></div>
复制代码
输出样例:
C语言程序1:
- int max( int a, int b ){
- if(a>=b) return a;
- else return b;
- }
复制代码
C语言程序2:
- int IsSquare(int n)
- {
- int x;
- x=(int)sqrt(n);
- if(x*x==n)
- return 1;
- else
- return 0;
- }/*此题即为你要先得将x整为整型
复制代码 6-4 使用函数判断完全平方数 (10 分)
本题要求实现一个判断整数是否为完全平方数的简单函数。
函数接口定义:
其中n是用户传入的参数,在长整型范围内。如果n是完全平方数,则函数IsSquare必须返回1,否则返回0。
裁判测试程序样例:
输入样例1:
输出样例1:
输入样例2:
输出样例2:
分析:
本题主函数有输入和输出语句,则IsSquare函数填写数据的变化过程即可。
此题即为你要先得将x判断为整型,因为他可能不是整型,然后整型之后如果还可以平方之后还是n那才对
如果这样写
- int IsSquare(int n)
- {
- int x;
- if(x==(int)sqrt(n))
- return 1;
- else
- return 0;
- }
复制代码
则不一定对了,因为n的开方数可能是实数型,有无数多的实数型的数强制整型后都可以是x。(感谢网络大佬指正)
同时注意n==0的情况。
C语言程序1:
- int IsSquare(int n)
- {
- int x;
- x=(int)sqrt(n);
- if(x*x==n||n==0)
- return 1;
- else
- return 0;
- })
复制代码
|
上一篇: 7-1 说反话-加强版下一篇: C语言网编程练习普及题
|