目录
41.根据所给的一组学生的成绩,计算出标准差
给定程序中,函数fun的功能是:根据所给的一组学生的成绩,由公式:
计算出标准差(Standard Deviation) σ并返回。公式中μ为平均成绩,N为学生人数,xi
为学生成绩。
例如:如有成绩为: 50, 60, 70, 80, 90, 100, 55, 65, 75, 85, 95, 99,
则运行结果应为:16. 527754
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1. C中,不得增行或删行,也不得更改程序的结构!
BLANK1. C:
#include <stdio.h>
#include <math.h>
double fun(double x[ ], int n)
{ int i;
double avg=0.0, sum=0.0;
for (i=0; i<n; i++)
/**********found**********/
avg += ____(1)____;//累加上所有成绩,也就是数组全部元素
/**********found**********/
____(2)____ /= n;//再除以学生人数,得平均分数
for (i=0; i<n; i++)
sum += (x[i]-avg)* (x[i]-avg);//此时的sum,在下面解题思路解释,在这里不会写数学公式
/**********found**********/
return ____(3)____;//根据题目公式补充一下,就是结果了
}
main( )
{ double score[12] ={50,60,70,80,90,100,55,65,75,85,95,99};
double aa;
aa= fun(score,12);
printf("%f\n", aa);
}
解题思路:
在代码中得出来的sum就是
∑
i
=
1
n
(
x
i
−
u
)
2
\displaystyle\sum_{i=1}^n(x_i-u)^2
i=1∑n(xi−u)2
说一下要用到的函数,
sqrt() //平方根函数
答案:
#include <stdio.h>
#include <math.h>
double fun(double x[ ], int n)
{ int i;
double avg=0.0, sum=0.0;
for (i=0; i<n; i++)
/**********found**********/
avg += x[i];
/**********found**********/
avg /= n;
for (i=0; i<n; i++)
sum += (x[i]-avg)* (x[i]-avg);
/**********found**********/
return sqrt(sum/n);
}
main( )
{ double score[12] ={50,60,70,80,90,100,55,65,75,85,95,99};
double aa;
aa= fun(score,12);
printf("%f\n", aa);
}
测试:
输出:
16.527754
42.将偶数下标位置所有偶数元素求和,减去奇数下标位置所有奇数元素的和
给定程序中,函数fun的功能是:根据形参c中存储的整数序列,将偶数下标位置所有偶数元素求和,减去奇数下标位置所有奇数元素的和,所得差由函数值返回。形参d中存储的是序列的长度。
例如:若c中存储的数值依次为13, 15,4, 7,20,d为5,
则函数返回(4+20)-(15+7) = 2,主程序输出2。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在文件BLANK1. C中,不得增行或删行,也不得更改程序的结构!
BLANK1. C:
#include <stdio.h>
int fun(int* c, int d) {
int s0, s1, i;
s0 = 0;
s1 = 0;
/********************found***********************/
for (i=0; i<___(1)____; i++) //遍历数组所有元素
{
if ((i % 2 == 0) && (c[i] % 2 == 0)) //筛出偶数下标的偶数元素
s0 += c[i];
/**********************found***********************/
if ((i % 2 == 1) && (_____(2)_____))//筛出奇数下标位置的奇数元素
s1 += c[i];
}
/**********************found***********************/
return ___(3)____;//返回偶数下标的偶数元素和与奇数下标的奇数元素和之差
}
main( )
{
int i, c[100], d;
printf("请输入整数序列的长度:");
scanf("%d", &d);
printf("请输入%d个整数:\n",d);
for (i = 0; i < d; i++)
scanf("%d", &(c[i]));
i = fun(c, d);
printf("%d", i);
}
解题思路:
这题很简单,真希望考的都是这种题ㄟ(≧◇≦)ㄏ,看前面注释就够了
答案:
#include <stdio.h>
int fun(int* c, int d) {
int s0, s1, i;
s0 = 0;
s1 = 0;
/********************found***********************/
for (i=0; i<d; i++)
{
if ((i % 2 == 0) && (c[i] % 2 == 0))
s0 += c[i];
/**********************found***********************/
if ((i % 2 == 1) && (c[i]%2==1))
s1 += c[i];
}
/**********************found***********************/
return s0-s1;
}
main( )
{
int i, c[100], d;
printf("请输入整数序列的长度:");
scanf("%d", &d);
printf("请输入%d个整数:\n",d);
for (i = 0; i < d; i++)
scanf("%d", &(c[i]));
i = fun(c, d);
printf("%d", i);
}
测试:
输入:
5
13 15 4 7 20
输出:
请输入整数序列的长度:请输入5个整数: //嘛,不用介意,这是我使用的编译器的问题
2
43.用函数指针调用函数
给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在__2_处使f指向函数f1,在_3_处使f指向函数f2。当调用正确时,程序输出: x1=5.000000,x2=3.000000,x1x1+x1x2=40.000000
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
BLANK1.C:
#include <stdio.h>
double f1(double x)
{ return x*x; }
double f2(double x, double y)
{ return x*y; }
double fun(double a, double b)
{
/**********found**********/
__1__ (*f)();//定义指针函数,这个空显然是填指针的类型,可以调用的函数都是double类型的,答案显而易见了
double r1, r2;
/**********found**********/
f = __2__ ; /* point fountion f1 */ //让函数指针指向一个函数,从下一句可以看出只有一个参数,那必然是f1
r1 = f(a);
/**********found**********/
f = __3__ ; /* point fountion f2 */ //两个参数,是f2
r2 = (*f)(a, b);
return r1 + r2;
}
main()
{ double x1=5, x2=3, r;
r = fun(x1, x2);
printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n",x1, x2, r);
getchar();
}
解题思路:
这题考查的是函数指针的应用
题目的代码中 r1=f(a); 这句话我们一般是 r1=(*f)(a); 这么写的,题目中的写法测试过了是可以这么写的,那就好奇这两种有什么区别,但并没有什么区别,当我们使用 f(a) 时,编译器会将其解析为 (*f)(a),也就是通过函数指针 f 来间接调用所指向的函数。
定义函数指针时 double (*p)(); 后面那个括号是填数据类型,就以这题目举例,
倘若定义函数指针时是 double (*p)(double); 那此时这个指针就只能指向只有一个参数的函数,在这题目中也就是只能指向f1,
以此类推,
还有这样 r1=*f(a); 那返回值就是指针类型,显然不符,会编译错误
答案:
#include <stdio.h>
double f1(double x)
{ return x*x; }
double f2(double x, double y)
{ return x*y; }
double fun(double a, double b)
{
/**********found**********/
double (*f)();
double r1, r2;
/**********found**********/
f = f1 ; /* point fountion f1 */
r1 = f(a);
/**********found**********/
f = f2 ; /* point fountion f2 */
r2 = (*f)(a, b);
return r1 + r2;
}
main()
{ double x1=5, x2=3, r;
r = fun(x1, x2);
printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n",x1, x2, r);
getchar();
}
测试:
输出:
x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000
44.修改结构体成员
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。
例如: a所指变量s中的学号、姓名、和三门课的成绩依次是:10001、" ZhangSan "、95、80、88,修改后输出t中的数据应为:10002、"LiSi "、96、81、89。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
BLANK1.C:
#include <stdio.h>
#include <string.h>
struct student {
long sno;
char name[10];
float score[3];
};
/**********found**********/
__1__ fun(struct student a)//返回值是结构类型的
{ int i;
a.sno = 10002;
/**********found**********/
strcpy(__2__, "LiSi");//字符串复制函数
/**********found**********/
for (i=0; i<3; i++) __3__+= 1;//对结构体变量的成员score数组的每个元素加1
return a;
}
main()
{ struct student s={10001,"ZhangSan", 95, 80, 88}, t;//定义两个结构体变量
int i;
printf("\n\nThe original data :\n");
printf("\nNo: %ld Name: %s\nScores: ",s.sno, s.name);
for (i=0; i<3; i++) printf("%6.2f ", s.score[i]);
printf("\n");
t = fun(s);
printf("\nThe data after modified :\n");
printf("\nNo: %ld Name: %s\nScores: ",t.sno, t.name);
for (i=0; i<3; i++) printf("%6.2f ", t.score[i]);
printf("\n");
getchar();
}
解题思路:
都是结构体基础的定义,很简单ヾ(•ω•`)o
答案:
#include <stdio.h>
#include <string.h>
struct student {
long sno;
char name[10];
float score[3];
};
/**********found**********/
struct student fun(struct student a)
{ int i;
a.sno = 10002;
/**********found**********/
strcpy(a.name, "LiSi");
/**********found**********/
for (i=0; i<3; i++) a.score[i]+= 1;
return a;
}
main()
{ struct student s={10001,"ZhangSan", 95, 80, 88}, t;
int i;
printf("\n\nThe original data :\n");
printf("\nNo: %ld Name: %s\nScores: ",s.sno, s.name);
for (i=0; i<3; i++) printf("%6.2f ", s.score[i]);
printf("\n");
t = fun(s);
printf("\nThe data after modified :\n");
printf("\nNo: %ld Name: %s\nScores: ",t.sno, t.name);
for (i=0; i<3; i++) printf("%6.2f ", t.score[i]);
printf("\n");
getchar();
}
测试:
输出:
The original data :
No: 10001 Name: ZhangSan
Scores: 95.00 80.00 88.00
The data after modified :
No: 10002 Name: LiSi
Scores: 96.00 81.00 89.00
45.统计大于0的数和小于0的数
给定程序中,函数fun的作用是:不断从终端读入整数,由变量a统计大于0的个数,用变量b来统计小于0的个数,当输入0时结束输入,并通过形参px和py把统计的数据传回主函数进行输出。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
BLANK1.C:
#include <stdio.h>
void fun( int *px, int *py)
{
/**********found**********/
int __(1)__ ;//定义变量,看完整个fun函数,把未定义的定义就行了,这个空算这道题最容易错的地方了
scanf( "%d", &k );
/**********found**********/
while __(2)__//k就是输入的整数,题目中说了当k=0时结束输出,也就是结束循环
{ if (k>0 ) a++;
if(k<0 ) b++;
/**********found**********/
__(3)__;//要不断读入整数,也就是每次循环都要输入一次整数,用scanf收取输入
}
*px=a; *py=b;
}
main()
{ int x, y;
fun( &x, &y );
printf("x=%d y=%d\n", x,y );
getchar();
}
解题思路:
细心,一定不要图快,这道题的第一个空,很容易漏,要定义三个变量k,a,b
答案:
#include <stdio.h>
void fun( int *px, int *py)
{
/**********found**********/
int k,a=0,b=0 ;
scanf( "%d", &k );
/**********found**********/
while (k!=0)
{ if (k>0 ) a++;
if(k<0 ) b++;
/**********found**********/
scanf("%d",&k);
}
*px=a; *py=b;
}
main()
{ int x, y;
fun( &x, &y );
printf("x=%d y=%d\n", x,y );
getchar();
}
测试:
输入:
13 15 4 7 20 -50 0
输出:
x=5 y=1
46.对单向链表逆置
给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表中从头至尾结点数据域依次为: 2、4、6、8、10,逆置后,从头至尾结点数据域依次为: 10、8、6、4、2。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
BLANK1.C:
#include <stdio.h>
#include <stdlib.h>
#define N 5
typedef struct node {
int data;
struct node *next;
} NODE;
/**********found**********/
__1__ * fun(NODE *h)//返回值是结构体指针类型
{ NODE *p, *q, *r;
p = h;//不带头节点
if (p == NULL)
return NULL;
q = p->next;//把p的下一个节点地址给q,q就是第二个节点
p->next = NULL;//因为当前p所指节点排序完后,会是最后一个节点,所以要把指针域赋为空
while (q)
{
/**********found**********/
r = q->__2__;//可以看到下一句q节点的下一节点变为了p,while循环是节点q的后移,所以要在指针域变之前,把q的下一节点地址存起来,最后再赋给q节点,实现后移
q->next = p;//把p节点移至q节点后面
p = q;//把q节点赋给p
/**********found**********/
q = __3__ ;//节点q后移
}
return p;
}
NODE *creatlist(int a[])
{ NODE *h,*p,*q; int i;
h=NULL;
for(i=0; i<N; i++)
{ q=(NODE *)malloc(sizeof(NODE));//开辟空间创造节点
q->data=a[i];//存入数据域
q->next = NULL;//指针域为空
if (h == NULL) h = p = q;//当第一个节点h为空时,把q节点赋给p,p再赋给h
else { p->next = q; p = q; }//不为空时,p当前所指节点下一节点为q节点,p指向q现在所指节点
}
return h;
}
void outlist(NODE *h)
{ NODE *p;
p=h;//第一个节点赋为p
if (p==NULL) printf("The list is NULL!\n");
else
{ printf("\nHead ");
do
{ printf("->%d", p->data); p=p->next; }//p后移,到下一节点为空时,停止
while(p!=NULL);
printf("->End\n");
}
}
main()
{ NODE *head;
int a[N]={2,4,6,8,10};
head=creatlist(a);//创建链表
printf("\nThe original list:\n");
outlist(head);//输出链表
head=fun(head);//链表逆置
printf("\nThe list after inverting :\n");
outlist(head);//再次输出链表
getchar();
}
解题思路:
这题有些难度,难点主要在于链表节点的变换容易混淆
对fun函数中逆置节点的变化,画了一下
应该挺清楚的了吧
答案:
#include <stdio.h>
#include <stdlib.h>
#define N 5
typedef struct node {
int data;
struct node *next;
} NODE;
/**********found**********/
NODE * fun(NODE *h)
{ NODE *p, *q, *r;
p = h;
if (p == NULL)
return NULL;
q = p->next;
p->next = NULL;
while (q)
{
/**********found**********/
r = q->next;
q->next = p;
p = q;
/**********found**********/
q = r ;
}
return p;
}
NODE *creatlist(int a[])
{ NODE *h,*p,*q; int i;
h=NULL;
for(i=0; i<N; i++)
{ q=(NODE *)malloc(sizeof(NODE));
q->data=a[i];
q->next = NULL;
if (h == NULL) h = p = q;
else { p->next = q; p = q; }
}
return h;
}
void outlist(NODE *h)
{ NODE *p;
p=h;
if (p==NULL) printf("The list is NULL!\n");
else
{ printf("\nHead ");
do
{ printf("->%d", p->data); p=p->next; }
while(p!=NULL);
printf("->End\n");
}
}
main()
{ NODE *head;
int a[N]={2,4,6,8,10};
head=creatlist(a);
printf("\nThe original list:\n");
outlist(head);
head=fun(head);
printf("\nThe list after inverting :\n");
outlist(head);
getchar();
}
测试:
输出:
The original list:
Head ->2->4->6->8->10->End
The list after inverting :
Head ->10->8->6->4->2->End
47.将所有串长超过k的字符串中右边的字符删除
给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
BLANK1.C:
#include <stdio.h>
#include <string.h>
#define N 5
#define M 10
/**********found**********/
void fun(char (*ss) __1__, int k)//二维数组传递函数,(*ss)是行,还有列要填
{ int i=0 ;
/**********found**********/
while(i< __2__) { //遍历所有行
/**********found**********/
ss[i][k]=__3__; i++; }//串长超过k的字符串中右边的字符删除,把字符串中第k+1个字符置为空,后面的就不会输出
}
main()
{ char x[N][M]={"Create","Modify","Sort","skip","Delete"};
int i;
printf("\nThe original string\n\n");
for(i=0;i<N;i++)puts(x[i]); printf("\n");
fun(x,4);
printf("\nThe string after deleted :\n\n");
for(i=0; i<N; i++) puts(x[i]); printf("\n");
getchar();
}
解题思路:
主要考了二维数组,字符串输出函数在遇到’\0’时,就会停止输出
答案:
#include <stdio.h>
#include <string.h>
#define N 5
#define M 10
/**********found**********/
void fun(char (*ss) [M], int k)
{ int i=0 ;
/**********found**********/
while(i< N) {
/**********found**********/
ss[i][k]='\0'; i++; }
}
main()
{ char x[N][M]={"Create","Modify","Sort","skip","Delete"};
int i;
printf("\nThe original string\n\n");
for(i=0;i<N;i++)puts(x[i]); printf("\n");
fun(x,4);
printf("\nThe string after deleted :\n\n");
for(i=0; i<N; i++) puts(x[i]); printf("\n");
getchar();
}
测试:
输出:
The original string
Create
Modify
Sort
skip
Delete
The string after deleted :
Crea
Modi
Sort
skip
Dele
48.找出含有子串的字符串
给定程序中,函数fun的功能是:在形参ss所指字符串数组中,查找含有形参substr所指子串的所有字符串并输出,若没找到则输出相应信息。ss所指字符串数组中共有N个字符串,且串长小于M。程序中库函数strstr(s1, s2)的功能是在s1串中查找s2子串,若没有,函数值为0,若有,为非0。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
BLANK1.C:
#include <stdio.h>
#include <string.h>
#define N 5
#define M 15
void fun(char (*ss)[M], char *substr)
{ int i,find=0;
/**********found**********/
for(i=0; i< __1__ ; i++)//每个字符串为一行,要遍历所有字符串
/**********found**********/
if( strstr(ss[i], __2__) != NULL )//判断字符串中是否有子串substr
{ find=1; puts(ss[i]); printf("\n"); }
/**********found**********/
if (find==__3__) printf("\nDon't found!\n");//在前面已经知道,find==1时,是存在字符串有子串substr,所以这个if分支只要find!=1即可
}
main()
{ char x[N][M]={"BASIC","C langwage","Java","QBASIC","Access"},str[M];
int i;
printf("\nThe original string\n\n");
for(i=0;i<N;i++)puts(x[i]); printf("\n");
printf("\nEnter a string for search : "); gets(str);//输入要搜索的子串
fun(x,str);
getchar();
}
解题思路:
说一下题目代码中出现的函数:
strstr()函数:
char *strstr(const char *haystack, const char *needle) //在字符串 haystack 中查找第一次出现字符串 needle 的位置,不包含终止符 ‘\0’。
haystack ——要被检索的字符串
needle ———在haystack字符串要搜索的子串
答案:
#include <stdio.h>
#include <string.h>
#define N 5
#define M 15
void fun(char (*ss)[M], char *substr)
{ int i,find=0;
/**********found**********/
for(i=0; i< N ; i++)
/**********found**********/
if( strstr(ss[i], substr) != NULL )
{ find=1; puts(ss[i]); printf("\n"); }
/**********found**********/
if (find==0) printf("\nDon't found!\n");
}
main()
{ char x[N][M]={"BASIC","C langwage","Java","QBASIC","Access"},str[M];
int i;
printf("\nThe original string\n\n");
for(i=0;i<N;i++)puts(x[i]); printf("\n");
printf("\nEnter a string for search : "); gets(str);
fun(x,str);
getchar();
}
测试:
输入:
BASIC
输出:
The original string
BASIC
C langwage
Java
QBASIC
Access
Enter a string for search : BASIC
QBASIC
49.计算出该日是这一年的第几天
函数fun的功能是:根据所给的年、月、日,计算出该日是这一年的第几天,并作为函数值返回。其中函数isleap用来判别某一年是否为闰年。例如,若输入:2008 5 1,则程序输出:2008年5月1日是该年的第122天。
请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
BLANK1.C:
#include <stdio.h>
int isleap(int year)
{ int leap;
leap= (year%4==0 && year%100!=0 || year%400==0);//为1则为闰年,
/**********found**********/
return __(1)__;//判断闰年的结果
}
int fun(int year, int month, int day)
{ int table[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//月份
int days=0 , i;
for(i=1; i<month; i++)
days=days + table[i];//加上月份的天数
/**********found**********/
days=days+__(2)__ ;//加上日
if( isleap(year) && month>2 )//过了二月且是闰年,
/**********found**********/
days=days+__(3)__;//闰年的二月要多一天
return days;
}
main()
{ int year, month, day, days ;
printf("请输入年、月、日:");
scanf("%d%d%d",&year, &month, &day);
days = fun(year, month, day);
printf("%d年%d月%d日是该年的第%d天\n",year, month, day, days);
getchar();
}
解题思路:
能被4整除、但不能被100整除,或能被400整除的年份为闰年
答案:
#include <stdio.h>
int isleap(int year)
{ int leap;
leap= (year%4==0 && year%100!=0 || year%400==0);
/**********found**********/
return leap;
}
int fun(int year, int month, int day)
{ int table[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int days=0 , i;
for(i=1; i<month; i++)
days=days + table[i];
/**********found**********/
days=days+day ;
if( isleap(year) && month>2 )
/**********found**********/
days=days+1;
return days;
}
main()
{ int year, month, day, days ;
printf("请输入年、月、日:");
scanf("%d%d%d",&year, &month, &day);
days = fun(year, month, day);
printf("%d年%d月%d日是该年的第%d天\n",year, month, day, days);
getchar();
}
测试:
输入:
2008 5 1
输出:
请输入年、月、日:2008年5月1日是该年的第122天
50.统计整型变量m中各数字出现的次数
给定程序中,函数fun的作用是:统计整型变量m中各数字出现的次数,并存放到数组a中,其中: a[0]存放0出现的次数,a[1]存放1出现的次数,…… a[9]存放9出现的次数。
例如,若m为14579233,则输出结果应为:0,1,1,2,1,1,0,1,0,1,
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
BLANK1.C:
#include <stdio.h>
void fun( int m, int a[10])
{ int i;
for (i=0; i<10; i++)
/**********found**********/
__1__ = 0;//初始化数组
while (m > 0)//用逐位取余的方式得出各数字出现的次数
{
/**********found**********/
i = ___2___;//取余得出当前个位
a[i]++;
/**********found**********/
m = ___3___;//去掉最后一位
}
}
main()
{ int m, a[10],i;
printf("请输入一个整数 : "); scanf("%d", &m);
fun(m, a);
for (i=0; i<10; i++) printf("%d,",a[i]); printf("\n");
getchar();
}
解题思路:
很简单,就不多描述了( ̄︶ ̄)↗
答案:
#include <stdio.h>
void fun( int m, int a[10])
{ int i;
for (i=0; i<10; i++)
/**********found**********/
a[i] = 0;
while (m > 0)
{
/**********found**********/
i = m%10;
a[i]++;
/**********found**********/
m = m/10;
}
}
main()
{ int m, a[10],i;
printf("请输入一个整数 : "); scanf("%d", &m);
fun(m, a);
for (i=0; i<10; i++) printf("%d,",a[i]); printf("\n");
getchar();
}
测试:
输入:
14579233
输出:
请输入一个整数 : 0,1,1,2,1,1,0,1,0,1,