/* 编写函数fun,功能:判断形参n中的正整数是几位数(输入数据的位数不超过4位), 并将及结果通过函数值返回。 例如:若输入的数据为 123 ,则输出 输入的数字是3位; */ #include<stdio.h> int fun(int n){ /* program */ /* end */ } int main(){ int n,place; do{ printf("请输入一个4位以内的正整数:"); scanf("%d",&n); } while(n<0 || n>9999); place=fun(n); printf("输入的数字是%d位\n",place); }


以下是完善后的 `fun` 函数: ```c #include<stdio.h> int fun(int n){ int count = 0; if (n == 0) { return 1; } while (n!= 0) { n /= 10; count++; } return count; } ``` 额外需要注意的逻辑点: 1. 对于特殊情况,如输入为 0 时,要单独处理。 2. 在循环中改变 `n` 的值时,要确保不会影响后续的计算或判断。 3. 对于函数的返回值,要确保其符合预期的逻辑。 [2025-01-12 20:36:29 | AI写代码神器 | 156点数解答]
相关提问
- /* 编写函数fun,功能:判断形参n中的正整数是几位数(输入数据的位数不超过4位), 并将及结果通过函数值返回。 例如:若输入的数据为 123 ,则输出 输入的数字是3位; */ #include<stdio.h> int fun(int n){ /* program */ /* end */ } int main(){ int n,place; do{ printf("请输入一个4位以内的正整数:"); scanf("%d",&n); } while(n<0 || n>9999); place=fun(n); printf("输入的数字是%d位\n",place); } (156点数解答 | 2025-01-12 20:36:29)175
- /* 在main函数中从键盘输入一个三位数,并输出判断结果。 编写fun函数(函数是判断一个三位数是否“水仙花数”)。 例如:153 是一个水仙花数。因为:153=1+125+27; */ #include<stdio.h> int fun(int m){ /* program */ /* end */ } int main(){ int m,flag; printf("enter number:"); scanf("%d",&m); flag=fun(m); if(flag) printf("%d 是水仙花数",m); else printf("%d 不是水仙花数",m); } (259点数解答 | 2025-01-12 20:22:41)141
- void sr(struct student* sr) //输入函数 显示器输入(录入学生信息) { int i = 0; printf("请输入学生的个数:"); scanf("%d", &d); system("cls");//清屏 for (; i < d; i++) { printf("请输入学生的姓名:"); scanf("%s", (*(sr + i)).name); printf("请输入学生的学号:"); scanf("%d", &(*(sr + i)).num); printf("请输入学生的语文成绩:"); scanf("%f", &(*(sr + i)).chinese); printf("请输入学生的数学成绩:"); scanf("%f", &(*(sr + i)).math); printf("请输入学生的英语成绩:"); scanf("%f", &(*(sr + i)).english); printf("请输入学生的计算机成绩:"); scanf("%f", &(*(sr + i)).c(5点数解答 | 2024-07-02 08:40:40)230
- #include<stdio.h> int main() { int max,a,b,c; int fun (intx,inty); printf("\nplease input 3 numbers:"); scanf("%d%d%d",&a,&b,&c); max=fun(fun(a,b),c); printf("max=%d",max); return 0; } int fun(intx,inty) { return(x>y?x:y); }(234点数解答 | 2025-05-23 16:06:57)105
- c语言现在有n枚硬币,其中有一枚是假的,假的硬币比真币轻,但也只轻一点点,而**和真币的外观是一模一样的,从外观上无法辨别硬币的真假,请写程序找出**。 程序的要求: 必须使用递归调用函数实现 递归函数原型必须为:int findfakecoin(int *p, int low, int high) 程序中必须包含函数:int getsum(int *p, int start, int end) main函数已经写好,请编写程序剩余部分的代码并提交。 main函数如下: int main() { int coins[n]; int m; int index; int getsum(int *p, int start, int end); int findfakecoin(int *p, int low, int high); scanf("%d", &m); for (int i = 0; i < m; ++i(497点数解答 | 2024-12-02 22:03:42)203
- // 主函数功能菜单 void menu() { printf("二叉树操作菜单:\n"); printf("1. 按顺序法创建二叉树的链式存储结构\n"); printf("2. 前序遍历二叉树\n"); printf("3. 中序遍历二叉树\n"); printf("4. 后序遍历二叉树\n"); printf("5. 退出\n"); } int main() { treenode *root = null; int choice; do { menu(); printf("请输入你的选择:"); scanf("%d", &choice); switch (choice) { case 1: root = createtreebysequence(); break; case 2: printf("前序遍历结果:"); preordertraversal(root); printf("\n"); break; case 3: printf("中序遍历结果:"); inordertraversal(root); printf("\n"); break; case 4: prin(132点数解答 | 2024-11-13 09:28:34)162
- 快速排序:# include< iostream>using namespace std;# include< stdlib. h># include< time. h>const int n =10;const int min= 10;const int max=99;int getrand( int min, int max){return ( rand()%( max-min+1)+ min);}void set( int r[], int n){int i;for(i=0;i<n;i++)r[i]=getrand(min, max);}void show( int r[], int n){int i;for(i=0;i<n;i++)cout << r[i]<<" ";cout << endl;}int partition( int r[], int i, int j){//由你完成}void quicksort( int r[], int i, int j){//由你完成}int main(){srand( time(0));int a[n];set(a, n);cout<<"(710点数解答 | 2024-11-14 10:44:25)225
- 快速排序:# include< iostream>using namespace std;# include< stdlib. h># include< time. h>const int n =10;const int min= 10;const int max=99;int getrand( int min, int max){return ( rand()%( max-min+1)+ min);}void set( int r[], int n){int i;for(i=0;i<n;i++)r[i]=getrand(min, max);}void show( int r[], int n){int i;for(i=0;i<n;i++)cout << r[i]<<" ";cout << endl;}int partition( int r[], int i, int j){//由你完成}void quicksort( int r[], int i, int j){//由你完成}int main(){srand( time(0));int a[n];set(a, n);cout<<"(951点数解答 | 2024-11-14 10:46:29)213
- 快速排序:# include< iostream>using namespace std;# include< stdlib. h># include< time. h>const int n =10;const int min= 10;const int max=99;int getrand( int min, int max){return ( rand()%( max-min+1)+ min);}void set( int r[], int n){int i;for(i=0;i<n;i++)r[i]=getrand(min, max);}void show( int r[], int n){int i;for(i=0;i<n;i++)cout << r[i]<<" ";cout << endl;}int partition( int r[], int i, int j){//由你完成}void quicksort( int r[], int i, int j){//由你完成}int main(){srand( time(0));int a[n];set(a, n);cout<<"(472点数解答 | 2024-11-14 10:51:44)201
- 6-22 删除字符串中指定的字符 分数 10 作者 王跃萍 单位 东北石油大学 编写函数fun,函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。 函数接口定义: int fun(char s[],char c); 其中 s 和 c 都是用户传入的参数。 函数从字符串 s中删除指定的字符c 。同一字母的大、小写按不同字符处理。 裁判测试程序样例: #include <stdio.h> int fun(char s[],char c); int main() { static char str[]="turbocandborlandc++"; char ch; scanf("%c",&ch); printf("原始字符串:%s\n", str); fun(str,ch); printf("str[]=%s\n",str); return 0; } /* 请在这里填写答案 */ 输入样例: c 输出样例: 原始字符串:turbocandborlandc++ str[]=turboandborland(211点数解答 | 2025-01-21 21:18:10)183
- #include<stdio.h> int copystring(int str1[], int str2[], int n); int main() { int str1[100],str2[100]; int i=0,num,n=0; // 使用 getchar() 来读取字符,检查是否是换行符 while (i < 100) { if (scanf_s("%d", &num) != 1) { while (getchar() != '\n'); break; } str1[i] = num; i++; if (getchar() == '\n') { n = i; break; } } int m = copystring(str1, str2, n); for(i=0;i<m;i++) printf("%d", str2[i]); return 0; } int copystring(int str1[], int str2[], int n) { int j,i; int count = 0; f(392点数解答 | 2024-12-08 15:18:09)167
- #include <stdio.h> int fun(int a, int b) { int c; // 请在此添加你的代码 /********** begin *********/ /********** end **********/ } int main() { int a,b, c; scanf("%d%d", &a, &b); c=fun(a, b); printf("%ld\n", c); return 0; }(61点数解答 | 2024-12-06 08:54:09)134