资源描述
华中科技大学
C语言实验与课程设计
实验报告
电脑科学与技术学院
指导老师:
Input the IP in unsigned long int form:
i76879571
3rocess returned 0 <0x0> execution tine : 24.738 s 5ress any key to continue.
1.3实验体会
在做改错题时,先浏览一遍,找出明显的错误,然后将初步修改后的代码输 入编译器并编译,再根据编译器的警告与错误提示修改程序至完全正确,这个过 程很需要细心和耐心,这个过程能够很好的帮助我再今后不犯类似错误。
源程序修改与替换题锻炼我们举-•反三的能力,我们在平时写程序时就应该 思考对于一个问题有没有多钟解决方案,不使用中间变量交换两个整数是很常见 的问题,我利用一个数异或自身等于0, 0异或任意位保存原位的原理来交换。
程序设计题提高了我们对所学知识的熟练度和理解程度,只有实践才能学会 C语言,在亲手编写代码的过程中发现问题,理解概念。
2流程控制实验
2.1实验目的
(1) 掌握复合语句、if语句>switch语句的使用,熟练掌握for^while> do-while 三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。
(2) 熟练运用for、while、do-while语句来编写程序。
(3) 练习转移语句和标号语句的使用。
(4) 使用集成开发环境中的调试功能:单步执行、设置断点、观察变量值。 2. 2实验内容及要求2.2.1.源程序改错
下面是计算s=n!的源程序,在这个源程序中存在假设干语法和逻辑错 误。要求在电脑上对这个例子源程序进行调试修改,使之能够正确完成指 定任务,例如,8!=40320o
程序代码:
#include<stdio.h>
int mainfl
(int Ln,s=l;
printff'Please enter n:"];scanf("%d",n); for(i=l;i<=n;i++) s=s*i;
printf("%d!=%d",n,s);return 0;
}
【分析及改正】本程序共存在3处错误,分析如下:
⑴ int s=1;
错误原因:在计算阶乘的时候,由于阶乘值会上升很快,所以不建议 使用int类型,可以改为long或者double型。
改正:改为long型变量。
(2) scanf("%d”,n);
错误原因:scant函数获取输入值时,引用的是一个变量地址,而不 是变量本身。
改正:scanf("%d”,&n);
(3) } return 0;
错误员因:return返回值应该在main函数内部
改正:return 0;}2. 2.2源程序修改替换
(1) 修改上述计算s=n!的源程序,要求分别用while和do-while语句替换for 语句。
(2) 修改上述计算s=n!的源程序,要求输入改为“整数S”,输出改为“满 足n!>=s的最小整数n” 。例如,输入整数40310,输出结果为n=8.
【分析】(1)相同循环内容利用不同循环结构实现,需要注意不同语句的 格式及根据循环方式对循环体做些许变动。流程图如下:
while 型
do-while 型
开始
输入n
计数变量i=l 累兼变量s=l
当(while) i<=n时
执行循环体 s=s*l i++
输出s
结束
开始
输入n
(2)同样计算n!并将n!赋值给不是s的值〔比方说m),然后令m和sYl
Yl
输出s
U
结束
比拟大小,找到符合条件的第一个m值,并返回n值。流程图如下:
【程序】(1) while型
#include <stdio.h>
int mainQ
(
int i=l,n,s=l; printff'Please enter n:"); scanf("%d",&n); while(i<=n){
s=s*i;
i++;}
printf(H%d!=%d",n,s); return 0;
}
do-while 型
#include <stdio.h>
int main()
(
int i=l,n,s=l; printff'Please enter n:"); scanf("%d",&n);
do(s=s*i;
i++;
)
while(i<=n); printf("%d!=%d",n,s); return 0;
}
(2)
#include <stdio.h>
int mainQ
(
int tn=0,s,m=l; printff'Please enter s:"); scanf("%d",&s); for(i=l;;i++){n++;
if(m> = s){ printf("n=%d",n); break;return 0;
【测试】〔1)如果输入8,应该输出:40320,程序运行结果如下, 程序正确。
Please enter n:88?=40320
Process returned 0 <0x0> execution tine : 4.985 s Press any key to continue.
⑵ 如果输入40310,应该输出:8,程序运行结果如下,程序正确。
Please enter s:40310n=8
Process returned 0 <0x0> execut ion t ine : 4.938 s Press any key to continue.
2. 2. 3程序设计
编写并上机调试运行能实现以下功能的程序:
(1) 假设工资税金按以下方法计算:x<1000元,不收取税金;1000<=x<2000, 收取5%的 税金;2000<=x<3000,收取10%的税金;3000<=x<4000,收取15%的税 金;4000<=x<5000,收取20%税金;x>5000,收取25%的税金。编写一个程序, 输入工资金额,输出应收取税金额度,要求分别用if语句呵switch语句来实现。
(2) 编写一个程序,将输入的一行字符复制到输出,复制过程中将一个以 上的空格字符用一个空格代替。
(3) 编写一个程序,打印如下的杨辉三角形。
1
1 1
1
2
1
1
3
3
1
1
4
6
4
1
1
5
10
10
51
1
6
15
20
15
6
1
1
7
21
35
35
217
1
1
8
28
56
70
56
28
8
1
19
36
84
126
126
8436
91
(4) 编写一个程序,将用户输入的任意正整数逆转。例如,输入1234,输 出 4321o
【分析】
(1)数学中的分段函数问题,可以用if-else-if结构进行控制。在应用 switch语句的时候,结合分段区间的特点设置合适的间断点。流程图分别 如下:
if型开始
(2)使用状态机通过判断空格的个数选择不同状态,从而实现消去空格的作用。 流程图如下:
(3)根据所给公式利用循环实现杨辉三角数的计算,注意题目中特别提到 的输出格式,将每个数字设置为四个字符位,并循环输出空格符,实现金字塔效 果。
(4〕屡次除10取余,每次都分别输出余数,然后除以10并赋给原数重复 计算,流程图如下:
【程序】
⑴if型
#include <stdio.h>
float taxffloat x);
int mainQ
(float x;
printff'Please input your salary:"]; scanf("%f",&x);printff'You should pay %fyuan.\n",tax(abs(x))); return 0;
)
float taxffloat x)(float n;
if(x<1000)(n=0;}else if(x<2000)(n=0.05;}
else if(x<3000)(n=0.1;)else if(x<4000)(n=0.15;)
else if(x<5000)(n=0.2;)else{n=0.25;} return n*x;
)
switch 型
#include <stdio.h>
float taxffloat x);
int mainfl
(
float x;
printff'Please input your salary:"); scanf("%F',&x);
printff'You should pay %fyuan.\n",tax(abs(x))); return 0;
}
float taxffloat x)(float n;
switch([int](x/1000))(case 0:n=0;break;
case l:n=0.05;break;case 2:n=0.1;break;
case 3:n=0.15;break;case 4:n=0.2;break;
default:n=0.25;}
return n*x;
)
(2)
#include <stdio.h>
enum {COPY,START,SPACE};
int mainQ
(
char c;
int state=COPY; printff'Please input a char:\n"); while((c=getcharO)!='\n'){ switch (state) ( case COPY:
if(c==, ')state=START;else putchar(c); break;
case START:
putchar('');if(c==r ')state二SPACE; else(state=COPY;putchar(c);} break;
case SPACE:
if(c= '){
state=COPY; putchar(c);
}else state=SPACE; break;
))
return 0;
}
(3)
#include <stdio.h>
#define n 10
int main(void)
(int i,j,k,c,m;
for(i=0;i<n;i++){
for(m=0;m<=n-i;m++]( printfC ");}
forQ=0;j<=i;j++)( if(j==O)c=l; else
c=c*(i+l-j)/j; printf("%4d",c);}
printf(”\n”);)
return 0;
)
(4)
#include <stdio.h>
int mainQ
(long n,m;
printff'PIease input an integer n(n>0):"); scanf(”%ld”,&n);printf("\nThe new integer is:"); while(n>=10){
m=n%10; printf("%ld",m); n/=10;}
printf(”%ld”,n);return 0;
)
【测试】Please input your salary:6000
You should pay 1500.000000 yuan.
Process returned 0 <0x0> execution tine : 10.547 s Press any key to continue.
Please input a char: huj iJ laj if 1
huji jlajif 1 da Process returned Press any key to
(2)da a fdjjfaos;ah af a a
a fdj Jfaos; ah af a a k0 <0x0> execution tine : 28.345 s continue.
1
1 1
1
2
1
13
3
1
14
6
4
1
1
5 10
10
5
1
1
6 15
20
15
6
1
1
7
21 35
35
21
7
1
1
8 :
28 56
70 !
56 :
28
8
1
19
36
84 126
126
84
36
91
Process returned 0 <0x0> execution tine : 0.203 s Press any key to continue.
Please input an integer n<n>0>:123456The new integer is:654321
Process returned 0 <0x0> execution tine : 6.109 s Press any key to continue.
2. 3实验体会
源程序改错中,依赖于平时良好的输入习惯,在输入过程中己经可以检查出 大多数语法错误,或者拼写错误。接下来再检查一下逻辑是否有误,无误那么进行 多组数据的编译检验,确认最终无误。
源程序修改与替换题锻炼我们举一反三触类旁通的能力,在平时写程序时就 应该思考对于一个问题有没有多钟解决方案,使用不同的逻辑结构多种尝试寻求 最优解。
程序设计题那么是自主的设计实践,在练习中获得进一步提升,增强对于所学 知识的熟练度和理解程度,锻炼能力。
目录1表达式和标准输入输出实验 3
2流程控制实验113函数程序与结构实验20
4编译预处理实验285数组实验35
6指针实验427结构与联合实验52
8文件实验61
3函数与程序结构实验
2.1实验目的
(1) 熟悉和掌握函数的定义、声明,函数调用与参数传递方法,以及函数 返回值类型的定义和返回值使用。
(2) 熟悉和掌握不同存储类型变量的使用。
(3) 熟悉多文件编译技术。
(4) 使用集成开发环境中的调试功能:单步执行、设置断点、观察变量值。 2. 2实验内容及要求2.2.1.源程序改错
下面是计算s = 1 !+2!+3!+・・・+n!的源程序,在这个源程序中存在假设干 语法和逻辑错误。要求在电脑上对这个例子源程序进行调试修改,使之能 够正确完成指定任务。
程序代码:
#include<stdio.h>
int main(void)
{int k;
for(k=1 ;kv6;k++)printf("k=%d\tthe sum is %ld\n", k, sum_fac(k));
)return 0;
longsum_fac(int n)
{long s = 0;
inti;long fac;
for(i=1; i<=n; i++) fac *= i;
s += fac; return s;
)
【分析及改正】本程序共存在3处错误,分析如下:
(1) } return 0;
错误脉因:return返[^值应该在main函数内部
改正:return 0;}
⑵ long fac;
错误原因:fac未赋予初始值,会导致接下来计算错误。
改正:long fac=1;
〔3) s += fac;
错误原因:语句s+=fac;不在函数for内部,逻辑出错。
改正:for(i=1;iv=n;i++){fac*=i;
s+=fac; )源程序修改替换
(1)修改上术源程序中的sumjac函数,使其计算量最小。
〔2)修改上述源程序中的sumjac函数,计算s =1+1/(21)+1/(3!)+……+1/(n!)
【分析】(1)利用static变量类型对循环进行化简,保存上一个值,防止屡次重复循环。流程图如下:
(2) 相比拟于源程序,变动之处在于求的是阶乘的倒数和,那么在循环中多 步求倒数的过程,并对倒数求和。流程图如下:
开始k=l,s=O,fac=lJ=l
【程序】〔1)
#include <stdio.h> long sum_fac();
int main()
(int k;for(k=l;k<6;k++) printf("k=%d\tthe sum is %ld\n",k,sum_fac(k)); return 0;
}
static long s=O,fac=l;
long sum_fac(int n)
(fac*=n;
s+=fac;return s;
}
⑵
#include <stdio.h>
float sum_facQ;
int main。
(int k;
for(k=l;k<6;k++) printf("k=%d\tthe sum is %f\n",k,sum_fac(k));return 0;
)
float sum_fac(int n)
(long fac=l;
inti;float x,s=0;
for(i=l;i<=n;i++){ fac*=i;x=1.0/fac;
s+=x;)
return s;
}
C=1
the
sun
is
1
c=2
the
sun
is
3
c=3
the
sun
is
9
c=4
the
sun
is
33
c=5
the
sun
is
153
^'□cess
returned
0
<0x0>
【测试】〔1)程序运行结果如下,程序正确。
execution tine : 0.151 s Tess any key to continue.
(2)程序运行结果如下,程序正确。
=1
the
sun
is
1.000000
=2
the
sun
is
1.500000
=3
the
sun
is
1.666667
=4
the
sun
is
1.708333
=5
the
sun
is
1,716667
rocess returned
0
<0X0>\
ress
any key to
continue.
execution tine : 0.441 s
2. 2. 3跟踪调试
下面是计算fabonacci数列前n项和的源程序,现要求单步执行该程序,并 观察p, i, sum, n的值,即:
(1) 刚执行完“scanf(”%d”,&k);”语句时,p,i值是多少?
Function a
Locals
j
57
k
2
sum
0
P
0x28ff00
n
Not available
(2) 从fabonacci函数返回后,光条停留在哪个语句上?
11 >
sum+=fabonacci(i);
(3)进入fabonacci函数时,watches窗口显示的是什么?
n=l到n不存在;n=l到n=2到n不存在;n=l到n=2到n=3到n不存在。
【源程序】
#include <stdio.h>
long fabonacci(int);
int mainQint i,k;
long sum=0,*p=∑scanf("%d”,&k);
for(i=l;i<=k;i++)( sum+=fabonacci(i); printf("i=%d\tthe sum is %ld\n",i,*p);)
return 0;
)
long fabonacci(int n){if(n==l||n==2)return 1;
else return fabonacci(n-l)+fabonacci(n-2);
}2. 2.4程序设计
编写并上机调试运行能实现以下功能的程序:
(1) 编写一个程序,让用户输入两个整数,计算两个数的最大公约数并且 输出之。要求用递归函数实现求最大公约数,同时以单步方式执行该程序,观察 其递归过程。
(2) 编写一个程序,验证哥德巴赫猜测:一个大于等于4的偶数都是两 个素数之和。
、(3)编写一个程序,证明对于在符号常量BEGIN和END之间的偶数这 一猜测成立。如,如果BEGIN为10, END为20,那么程序的输出应为:
GOLDBACH' SCONJECTURE:
Every even number n>=4 is the sum of two primes.
10=3+7
12=5+7
20=3+17
【分析】
(1)用辗转相除法求最大公约数,程序框图如下:
开始
取两个数中的较大 数除以较小数得到假设余数不为零,去余数 和被除数,重复上一步 操作
余数为零后,取被 除数,即为最大公 约数结束
(2) 首先判断一定范围内的素数〔比方100以内),然后判断一个偶数能 否表示为两个素数之和。程序框图如下:
判断素数W
(3) 和第二题类似,只不过加上一个范围控制,设置循环处于最大值和最 小值之间。程序框图如下:
【程序】⑴
#include <stdio.h>
int GCD(int m,int n);
int mainQ
(int m,n,r;
printff'Please input two integers:、、'); scanf("%d%d",&m,&n);printff'The greatest common divisor is %d",GCD(m,n)); return 0;
}int GCD(m,n)( if(m%n==O&&m>=n)return n; else if(m%n==O&&m<n)return m;
else(int r;
r=m%n;m=n;
n=r;return GCD(m,n);
)
)
⑵
#include <stdio.h>
#define N 100
static int a[N];
int primeQ;
int mainQ
(int x,i;
printff'Please input an even x(x>=4):\n");scanf("%d",&x);
if(x%2!=0||x<4)printf(,,ERROR!");prime。; for(i=2;i<=N&&i<x/2;i++){ if(a[i])
if(a[x・i]){printf("%d=%d+%d\n",x,i,x・i);}}
return 0;
}
int primeQ(int i,j;
for(a[0]=a[l]=0,i=2;i<N;i++)a[i]=l;for(i=2;i<N/2;i++)
if(a[i]){ for(j=i*i;j<N;j+=i]a[j]=0;}
return 0;
)
(3)
#include <stdio.h>
#define N100
#define BEGIN 10
#define END 20
static int a[N];
int prime();
int main()
(int x,i,j;
printff'GOLDBACH'S CONJECTURE:\nEvery even number n>=4 is the sum of two prime.\n");primeQ;
for(i=BEGIN;i<=END;i++)(for(j=2;jvi/2;j++){
if(a[j]) if(a[i-j]){printf("%d=%d+%d\n”,i,j,i-j);}}
)return 0;
)
int primeQ(
int i,j;
for(a[0]=a[l]=0J=2;i<N;i++)a[i]=l; for(i=2;i<N/2;i++)if(a[i]){
for(j=i*i;j<N;j+=i)a[j]=0;)
return 0;
)
【测试】
(1)输入24和16求最大公约数,最大公约数为8,结果正确:
Please input two integers:
2416
The greatest common diuisor is 8
(2)验证哥德巴赫猜测,输入98,返回素数和,结果正确:
Please input an euen x<x>=4>: 9898=19+79
98=31+6798=37+61
(3) 验证一定范围内的哥德巴赫猜测,输入14,返回素数和,结果正确:
Please input an euen x<x>=4>:
1414=3+11
2. 3实验体会
源程序改错中,依赖于平时良好的输入习惯,在输入过程中己经可以检查出 大多数语法错误,或者拼写错误。接下来再检查一下逻辑是否有误,无误那么进行 多组数据的编译检验,确认最终无误。
源程序修改与替换题锻炼我们优化算法的能力,在平时写程序时就应该思考 对于一个问题有没有最优解决方案,使用不同的语句在空间和时间中寻求平衡点, 尽可能的控制好占用的时间空间范围。
程序设计题那么是自主的设计实践,在练习中获得进一步提升,增强对于所学 知识的熟练度和理解程度,锻炼编写代码的能力以及并通过问题的进一步引申锻 炼思维的灵活性。
4编译预处理实验
4.1实验目的
(1) 掌握文件包含、宏定义、条件编译、assert宏的使用
(2〕练习带参数的宏定义、条件编译的使用。
(3) 练习assert宏的使用。
(4) 使用集成开发环境中的调试功能:单步执行,设置断点,观察变量值。
4. 2实验内容及要求2.1.源程序改错
下面是用宏来计算平方差和交换两数的源程序。在这个源程序中,存 在假设干语法和逻辑错误,要求在电脑上对这个源程序进行调试修改,使 之能够正确完成计算平方差和交换两数的任务。
程序代码:
#include<stdio.h>
#define SUM a+b
#define DIF a-b
#define SWAP(a,b) a=b,b=a
int main(void)
(int b, t;
printff'Input two integers a,b:");scanf("%d, %d”,&a, &b);
printf(H\nSUM=%d\n the difference between square of a and square of b is:%d”,SUM,SUM*DIF);
SWAP(a,b);
printf("\nNow a=%d, b=%d\n'\ a, b); return 0;
}
【分析及改正】本程序共存在3处错误,分析如下:
〔1) #define SUM a+b #define DIF a-b
错误原因:在宏定义中,在引用时直接将表达式带入之后的表达式应 用,由于不了解在之后的应用中采用的运算符,所以优先级无法确定,因 此需要在宏定义中对变量即表达式中加上括号。
改正:#define SUM ((a)+(b))#define DIF ((a)-(b))
(2) #define SWAP(a,b) a=b,b=a
错误原因:带参数的宏定义逻辑错误,无法有效实现两个数的交换。
改正:#define SWAP(a,b,t) t=b,b=a,a=t
(3) intb,t;
错误原因:未完整声明所有参数,导致局部参数不识别。
改正:inta,b,t;
(4) scanf("%d, %d", &a, &b);
错误原因:scanf函数中类型声明中,两个%(1符号中间不加符号。 改正:scanf("%d%d", &a, &b);
(5) SWAP(a,b);
错误原因:与宏定义相对应的更改为三个参数。
改正:SWAP(a,b,t);源程序修改替换
下面是用函数实现求三个数中最大数、计算两数之和的源程序。在这个源程 序中存在假设干语法和逻辑错误,要求:
(1) 对这个例子源程序进行调试修改,使之能够正确完成指定任务。
(2) 用带参数的宏替换函数max,实现求最大数的功能。
程序代码:
void main(void)
(int a, b, c;
float d, e;printf("Enter three integers:");
scanf("%d, %d, %d”, &a, &b, &c);printf("\nthe maximum of them is %d\n", max(a,b,c)); printf("Enter two floating point numbers:");
scanf("%f, %f, &d, &e);printf("\nthe sum of them is%f\n",sum(d,e)); return 0;
}
int max(int x, int y, int z)
(int t;
if (x > y) t = x;else t = y;
if (t < z) t = z;return t;
}
float sum(float x, float y)
(return x + y;
}
【分析】(1)修改如第一题,出现的问题有:scanf函数的参数变量类型间 的格式问题与函数声明问题。
(2)将函数max用带参数的宏定义表示,利用语句“?: ”表示if选择语 句。
【程序】〔1〕
#include <stdio.h>
int max(int x,int yjnt z);1表达式和标准输入与输出实验
1.1实验目的
(1) 熟练掌握各种运算符的运算功能,操作数的类型,运算结果的类 型及运算过程中的类型转换,重点是C语言特有的运算符,例如位运算符, 问号运算符,逗号运算符等;熟记运算符的优先级和结合性。
〔2)掌握scanf和printf函数的用法。
〔3)掌握简单C程序〔顺序结构程序)的编写方法。
1.2实验内容及结果1.2.1,源程序改错
下面给出了一个简单C语言程序例程,用来完成以下工作:
〔1)输入华氏温度匚 将它转换成摄氏温度C后输出;
〔2)输入圆的半径值r,计算并输出圆的面积s;
〔3)输入短整数k、P,将k的高字节作为结果的低字节,p的高 字节作为结果的高字节,拼成一个新的整数,然后输出;
在这个例子程序中存在假设干语法和逻辑错误。要求参照和 2. 1.4的步骤对下面程序进行调试修改,使之能够正确完成指定任务。
程序代码:
#include<stdio.h>
#define PI 3.14159;
voidmain( void)
(int f;
short p, k;double c, r, s ;
/* for task 1 */printfflnput Fahrenheit:");
scanf("%d",f);c = 5/9*(f-32);
printff" \n %d (F) = %.2f (C)\n\n ”, f, c);/* for task 2 */
printff'input the radius r:"); scanf(n%f\ &r);s = PI * r * r;
printf("\nThe acreage is %.2f\n\n",&s);/* for task 3 */ printff'input hex int k, p :");
float sum(float x,float y); int mainQint a,b,c;
float d,e;printfC'Enter three integers:\n"); scanf("%d%d%d”,&a,&b,&c);
printf("\nthe maximum of them is %d\n”,max(a,b,c)); printf("Enter two float point numbers:\n"); scanf(”%f%F',&d,&e);printf("\nthe sum of them is %f\n",sum(d,e)); return 0;
}
int max(int x,int y,int z)
{int t;
if(x>y)t=x;else t=y;
if(tvz)t=z;return t;
}
float sum(float x,float y)
(return x+y;
)
⑵
#include <stdio.h>
#define max(x,y,z) (((x)>(y)?(x):(y))>(z))?((x)>(y)?(x):(y)):(z) float sum(float x,float y);
int main()
{int a,b,c;
float d,e;printff'Enter three integers:\n"); scanf("%d%d%d”,&a,&b,&c);
printf("\nthe maximum of them is %d\n”,max(a,b,c)); printf("Enter two float point numbers:\nH); scanf("%f%F',&d,&e);printf("\nthe sum of them is %f\n",sum(d,e)); return 0;
}
float sumffloat x,float y)
(return x+y;
)
【测试】〔1)程序运行结果如下,程序正确。
inter three integers: the maximum of then is 9 Enter two float point numbers:
:he sum of them is 9.000000
(2) 程序运行结果如下,程序正确。
Enter three integers: the maximum of them is 4 Enter two float point numbers: he sun of then is 14.0000004. 2. 3跟踪调试
下面程序的功能是利用R计算圆的面积s,以及面积s的整数局部。现要 求:
(1) 修改程序,使程序编译通过且能运行。修改过的源程序见下面局部。
(2) 单步执行。进入函数integerjraction时,watches窗口中为何值? 在返回main时,watch窗口中i为何值?如图:
WatchesXX
〔3)排除错误,使程序能正确输出面积S值的整数局部,不会输出错误信 息 assertion failed o
题目程序代码:
#define R
int main(void)
(
float r, s;
int sjnteger = 0; printff'input a number:"); scanf("%f\ &r);
#ifdef Rs = 3.14159 *r*r;
printf("area of round is:%f\n", s); sjnteger = integer_fraction(s);
printff'the integer fraction of area is %d\n", sjnteger); assert((s-s_integer) < 1.0);#endif
return 0;
)
int integer_fraction(float x)
(i
展开阅读全文