开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情
计算机二级C语言程序设计
题目:
请编写函数proc(),其功能是:判断形参n中的正整数是几位数(输入数据的位数不超过4位),并将结果通过函数值返回。例如:若输入的数据为123,则输出结果为:输入的数字是3位.
#include <stdio.h>
#include <stdlib.h>
void NONO();
int proc(int n)
{
?
}
main()
{
int n, place;
do
{
printf("请输入一个4位以内的正整数:");
scanf("%d", &n);
}
while (n<0 || n>9999);
place=proc(n);
printf("输入的数字是%d位\n", place);
NONO();
system("pause");
}
void NONO()
{/* 本函数用于打开文件,输入数据,
调用函数,输出数据,关闭文件。*/
FILE *rf,*wf;
int i, n, place;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for( i=0; i<8; i++ )
{
fscanf(rf, "%d ", &n);
place=proc(n);
fprintf(wf, "%d\n", place);
}
fclose(rf);
fclose(wf);
}
分析题目:
要求我们补全函数proc(),以判断形参n中的正整数是几位数,另外要求输入数据的位数不超过4位。
解题思路:
由于输入数据的位数不超过4位,所以n数值应小于等于9999,再根据题意输出的结果是n是几位数,所以我们要进行判断,首先判断形参n是否大于999,如果大于,则表明形参n中的正整数是4位数,故输出4;再判断n是否介于99与999之间,如果是则表明形参n中的正整数是3位数;以此类推,如果介于9到99,则形参n中的正整数是2位数;如果小于等于9,则形参n中的正整数是1位数;
具体解题代码如下:
int proc(int n)
{
int t=0;
if(n>999)
{
t=4;
}
else if(n>99)
{
t=3;
}
else if(n>9)
{
t=2;
}
else
{
t=1;
}
return t;
}
效果如下:
引申:
if...else语句是根据判断条件是否成立来执行的
else if语句的用法:
最简单的一个if语句后可跟一个可选的else语句
语法:
if(boolean_expression)
{
/*如果布尔表达式为真将执行的语句*/
}
else
{
/*如果布尔表达式为假将执行的语句*/
}
其次if...else语句
语法:
if(boolean_expression 1)
{
/*如果布尔表达式1为真将执行的语句*/
}
else if(boolean_expression 2)
{
/*如果布尔表达式2为真将执行的语句*/
}
else if(boolean_expression 3)
{
/*如果布尔表达式3为真将执行的语句*/
}
else (boolean_expression 2)
{
/*以上条件都不为真是执行*/
}
需注意:
- if语句至多有一个else语句,else语句在所有else if语句之后。
- if语句可以有若干个else if语句,它们必须在else语句之前。
- 一旦其中一个else if语句是真的,其他的else if及else语句都将跳过执行。