推广网站利润/google浏览器下载安装
一.实验目的:
二、实验内容和步骤 |
(1)分析并修改下面程序错误,使之能够正常运行。
错误代码一:
输入两个数,输出其中较大的数,错误代码如下:
int max(int a, b);
{
if(a>b)
max=a;
else
max=b;
return max;
}
int main()
{
int max,x,y;
printf("输入两个整数,用空格隔开:");
scanf("%d%d",&x,&y);
max=max(x,y);
printf("max=%d\n",max);
return 0;
}
错误分析:
1. max函数声明时不用逗号
2. max函数声明时要定义参数的类型
3. max函数里需要定义需要返回的变量的类型
4. 同一函数内变量名不能跟函数名相同
(2)编写简单编程题
(1)求,其中n的值由键盘输入。
要求:定义和调用函数doublefact(int a);求取a!并返回结果。
注:此题仅作为自定义函数练习使用,这个程序用函数实现效率会很低。
代码:
#include<stdio.h>
double fact(int a)
{
if(a==1)
return1;
else
returna*fact(a-1);
}
void main()
{
int i,n;
doublesum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum+=fact(n);
}
printf("%.3lf",sum);
}
(2)编写程序,给小学生出加法运算题,然后判断学生输入的答案对错与否,并统计得分。
功能:连续出10道题,通过计算机随机产生两个1~10之间的加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则显示“Not correct!”,不给机会重做,10道题做完后,按每题10分统计总得分和错误题数,然后输出总分和做错的题数。
编程要求:
l 较好的用户输入输出提示
l 使用子函数实现两个数相加的测试。此函数的输入参数是两个加数,返回值是用户运算的正确与否(用1或者0表示)。在此函数中首先读入用户输入的加法结果,并与正确结果进行比较。
int AddTest(int a, int b) ;
l 仅仅要求完成程序4的编写调试运行工作,程序1至程序3是对编写程序4的引导。若可以直接编写出程序4,可以直接编写,如果不能一步编写成功,可以根据引导一步步编写。
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include<time.h>
int AddTest(inta, int b)
{
returna+b;
}
int main()
{
inti,x,y,sum,wrognum=0;
srand((unsigned)time(NULL));
for(i=1;i<10;i++)
{
x=rand()%9+1;
y=rand()%9+1;
printf("The%d quetions: %d+%d=?\n",i,x,y);
scanf("%d",&sum);
if(sum==AddTest(x,y))
{
printf("Right!\n");
}
else
{
wrognum++;
printf("Notcorrect!\n");
}
}
printf("Yourscore is:%d,had done %d wrong questions.\n",(10-wrognum)*10,10-wrognum);
return 0;
}