请编写函数fun,其功能是:判断形参n 中的正整数是几位数(输入数据的位数不超过4位),并将结果通过函数值返回。 例如:若输入的数据为123,则输出结果为:输入的数字是3位。 注意:部分源程序存在PROG1.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include <stdio.h> #include <stdlib.h> void NONO(); int fun(int n) { /*************代码开始**********/ /*************代码结束**********/ } main() { int n, place ; do{ printf("请输入一个4位以内的正整数:"); scanf("%d", &n); }while (n<0 || n>9999); place = fun(n); printf("输入的数字是%d位\n",place); NONO(); system("pause"); } void NONO() {/* 本函数用于打开文件,输入数据, 调用函数,输出数据,关闭文件。*/ FILE *fp,*wf; int i, n, place; fp = fopen("in.dat","r"); wf = fopen("out.dat","w") ; for( i=0; i<10; i++ ) { fscanf(fp, "%d ", &n); place = fun(n); fprintf(wf, "%d\n", place); } fclose(fp) ; fclose(wf) ; }
时间: 2023-07-23 12:23:23 浏览: 887
函数fun的实现如下:
```c
int fun(int n) {
int place = 0;
if (n < 10) { // 一位数
place = 1;
} else if (n < 100) { // 两位数
place = 2;
} else if (n < 1000) { // 三位数
place = 3;
} else { // 四位数
place = 4;
}
return place;
}
```
该函数的思路是:
1. 判断n是否小于10,如果是,则为一位数。
2. 判断n是否小于100,如果是,则为两位数。
3. 判断n是否小于1000,如果是,则为三位数。
4. 如果不满足上述条件,则为四位数。
根据题目要求,函数需要通过函数值返回结果,因此在函数末尾使用return语句返回place的值。
阅读全文