一、程序设计初步
(一)题1.读入两个整数,输出它们的积
(一)題2.从两个浮点数中找出大数
(一)题3.从键盘输入三个整数,按从大到小的顺序输出它们的值。
(一)题1.读入两个整数,输出它们的积
解:
设两个整数分别为x,y,积为m;程序首先调用printf()函数,输出提示用户输入数据的提示信息,然后调用scanf()函数,为变量x和y输入值;接着求x与y的积m;最后输出m。
用算法描述如下:
读入两个整数,输出它们的积
{
输出提示用户输入数据的信息;
输入变量x和y的值;
m=x*y;
输出m;
}
程序代码如下:
#include<stdio.h>
{
int x,y,m; /*定认变量x,y,m*/
printf("Input x and y\n"); /*提示用户输入数据*/
scanf("%d%d",&x,&y); /*输入x和y的值*/
m=x*y; /*求m=x*y*/
printf("%d*%d=%d\n",x,y,m); /*输出结果x*y=m*/
}
程序执行结果如下:
Input x and y
21 30
x*y=630
---------------------------------------------------
(一)題2.从两个浮点数中找出大数
解:
设两个派出点数分别为x,y,它们中的大数为c;程序首先调用printf()函数,输出提示用户输入数据的提示信息,然后调用scanf()函数,为就是x和y输入值;接着求x与y的大值并存入变量c;最后输出c。
算法描述如下:
从两个浮点数中求大数
{
输出提示用户回值为据的信息;
输入变量x和y的值;
if(x>y)c=x;
else c=y;
输出c;
}
程序代码如下:
/*输入两个浮点数,输出它们中的大数*/
#include<stdio.h>
void main()
{
float x,y,c; /*变量定义*/
printf("Input x and y.\n"); /*提示用户输入数据*/
scanf("%f%f",&x,&y);
if(x>y) c=x; /*计算c=max(x,y)*/
else c=y; /*也可写成c=x>y?x:y; 或写成 x>y?c=x:c=y;*/
printf("MAX(%f, %f)=%f\n",x,y,c);
}
如把求两个浮点数的大数的代码编写成函数max(),函数max(a,b)的作用是返回参数a,b中的较大值。
改写后的程序如下:
/*输入两个浮点数,输出它们中的大数*/
#include<stdio.h>
float max(float a,float b)
{
if(a>b)return a;
else return b; /*或写成return a>b?a:b;*/
}
void main()
{
float x,y,c; /*变量定义*/
printf("Input x and y.\n");
scanf("%f%f",&x,&y);
c=max(x,y); /*计算c=max(x,y)*/
printf("MAX(%.2f,%.2f)=%.2f\n",x,y,c);
}
程序执行结果如下:
Input x and y.
2.4 3.8
MAX(2.40,3.80)=3.80
说明:
主函数main()中调用max()函数的表达式max(x,y),将实参xz和y的值分别传送给max()函数中的参数a和b(实参的值传送给形参是函数调用机制自动完成的)。经执行max()函数后,返回x和y中的大值。
-------------------------------------------------
(一)题3.从键盘输入三个整数,按从大到小的顺序输出它们的值。
解:
设存储三个整数的变量分别为x,y和z。程序为x,y和z输入值后,调整x,y和z的值,使x,y和z的值满足关系x>=y>=z,然后依次输出x,y,z的值,即能完成问题的要求。
算法如下:
从键盘输入三个整数,按从大到小的顺序输它们的值
{
为变量x,y,z输入值;
主,调整x,y,z的值,使x,y,z的值满足关系 x>=y>=z;
依次输出变量x,y,z的值;
}
为调整x,y,z的值,使x,y,z的值满足关系x>=y>=z,可先调整x与y,使大的值存于x,另一个存于y。再调整x与z,使大的值存于x,另一个存于z。经上述两次调整后,使x的值变为最大。接着调整y和z,将使y变为次最大,z变为最小。
程序代码如下:
#include<stdio.h>
void main()
{
int x,y,z,t;
printf("Enter x y z\n");
scanf("%d%d%d",&x,&y,&z);
if(x<y) /*调整x与y,使x>=y*/
{
t=x;
x=y;
y=t;
}
if(x<z) /*调整x与z,使x>=z*/
{
t=x;
x=z;
z=t;
}
if(y<z) /*调整y与z,使y>=z*/
{
t=y;
y=z;
z=t;
}
printf("The maximum is %d,the middle is %d,the minimum is %d.\n",x,y,z);
}
程序执行结果如下:
Enter x y z
12 20 33
The maximum is 33,the middle is 20,the minimum is 12
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |