计算机二级C语言程序设计

152 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 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;
}

效果如下:

image.png

引申:

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语句都将跳过执行。