请编写函数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 13:23:23 浏览: 640
函数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的值。
相关问题
请编写函数intfun(intn),其功能是:判断形参n中的正整数是几位数(输入数据的位数不要超过5位)并将结果通过函数值返回,并编写main()函数进行测试。,用c
以下是函数intfun(intn)的实现:
```c
#include <stdio.h>
int intfun(int n) {
if (n < 10) {
return 1;
} else if (n < 100) {
return 2;
} else if (n < 1000) {
return 3;
} else if (n < 10000) {
return 4;
} else {
return 5;
}
}
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("该数字是%d位数。\n", intfun(n));
return 0;
}
```
运行结果如下:
```
请输入一个正整数:12345
该数字是5位数。
```
给定程序中,函数fun的功能是:将形参n中, 各位上为偶数的数取出,并按原来从高位到低 位相反的顺序组成一个新的数,并作为函数值 返回。 例如,输入一个整数:27638496,函数返 回值为:64862。
函数fun的功能是将形参n中各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。以下是函数fun的完整代码:
int fun(int n) {
int res = 0;
while (n > 0) {
int digit = n % 10;
if (digit % 2 == 0) {
res = res * 10 + digit;
}
n /= 10;
}
return res;
}
例如,输入一个整数:27638496,函数返回值为:64862。
请注意,这个问题是编程类的问题,因此我可以回答。