以下程序教材基于 谭浩强C程序设计(第四版)
第1题 参照例1.3,在Visual C++ 6.0环境中继续完成教材P.15 习题6。
/*此程序于2017年3月1日12:48编写,目的:
当用户在命令窗口输入a,b,c三个值,输出
其中最大者*/
# include
int main(void)
{
int a,b,c,t; //因为要进行三个数字的大小比较,所以需要引入中间变量t//
printf("请输入a,b,c的值,中间以逗号隔开:\n"); //请用户输入三个数值的大小//
scanf("%d,%d,%d",&a,&b,&c); //读取用户所输入三个数值//
t=a; //将a的值赋给t//
if (t//以下运用if语句进行比较//
t=b;
if (tprintf("a,b,c中,最大的数字是%d\n",t); //输出最大值//
return 0;
}
/*此程序于2017年3月2日编写,目的改变原来算法,采用函数方法比较三个整数中的最大者
# include
# include
int main(void)
{
int max(int x,int y,int z);
int a,b,c,d;
printf("请输入三个整数,中间以逗号隔开\n");
scanf("%d,%d,%d",&a,&b,&c); //scanf 语句请用户输入三个字符//
d=max(a,b,c);
printf("max=%d\n",d); //printf 语句请用户输出最大值,从max函数中的返回值调用//
system("pause"); //页面停留指令//
return 0;
}
int max(int x,int y,int z) //定义函数//
{
int t;
t = x;
if (y>t) //if语句 后面会学到//
t=y;
if (z>t)
t=z;
return(t); /*返回函数值给第十行C,当然 如果定义函数写在了main语句的前面,
则在第六行中不需要定义参数int x,int y,int z
}
*/
第2题 在Visual C++ 6.0环境中输入并运行例3.1。
/*此程序于2017年3月1日编写,目的将华氏温度转换为摄氏度*/
# include
int main(void)
{
float f,c; //定义f和c为单精度浮点型变量//
f=64.0; //指定f的值//
c=(5.0/9)*(f-32); //利用公式计算c的值//
printf("f=%f\nc=%f\n",f,c); //输出c的值//
return 0;
}
/*此程序需要注意的是,找到华氏与摄氏之间的转换关系,摄氏温度=5/9(华氏温度-32)*/
第3题 在Visual C++ 6.0环境中输入并运行例3.2。
/*此程序于2017年3月1日编写,目的计算本息和*/
# include
int main()
{
float p0=1000,r1=0.0036,r2=0.0225,r3=0.0198,p1,p2,p3; //定义变量//
p1 = p0 * (1 + r1); //计算活期本息和//
p2 = p0 * (1 + r2); //计算一年定期本息和//
p3 = p0 * (1 + r3/2) * (1 + r3/2); //计算存两年半年定期的本息和//
printf("p1=%f\np2=%f\np3=%f\n",p1,p2,p3); //输出结果//
return 0;
}
第4题 在Visual C++ 6.0环境中输入并运行例3.3。
/*此程序于2017年3月1日编写,目的给定一个大写字母,要求用小写字母输出*/
# include
int main(void)
{
char c1,c2;
c1='A'; //将字符A的ASCII代码存放到c1变量中//
c2=c1+32; //得到字符a的ASCII代码存放到c2变量中//
printf("%c\n",c2); //输出c2的值,是一个字符//
printf("%d\n",c2); //输出c2的值,是字符a的ASCII代码//
return 0;
}
第5题 编写程序,把456分钟换算成用小时和分钟表示,将换算结果输出到屏幕。
/*此程序于2017年3月1日编写,目的将456分钟转换为小时和分钟*/
# include
int main(void)
{
int hour,minute;
hour = 456/60;
minute = 456%60;
printf("将456分钟转换为小时和分钟\n");
printf("%d时%d分\n",hour,minute);
return 0;
}
/*如果要求用户自行决定多少分钟,则改程序应如下
# include
int main(void)
{
int minute,hour;
printf("请输入分钟数\n");
scanf("%d",&minute);
printf("%d 分钟 = ",minute);
hour=minute/60;
minute%=60;
if(hour>0)
printf("%d 小时 ",hour);
if(minute>0)
printf("%d 分钟\n",minute);
return 0;
}
*/
第6题 从键盘读取两个整数并用实数输出它们的平均值。
/*此程序于2017年3月1日编写,目的:从键盘读取两个整数并用实数输出它们的平均值。*/
# include
int main(void)
{
int a,b;
double c; //变量c需要定义为双精度类型//
printf("请输入两整数的值,中间以逗号隔开\n");
scanf("%d,%d",&a,&b);
c=(double)(a+b)/2;
printf("两数的平均值为%lf\n",c);
return 0;
}
第7题 从键盘读取一个3位正整数,在屏幕上依次输出该整数的个位、十位和百位。
/*此程序于2017年3月1日编写,目的:
从键盘读取一个3位正整数,在屏幕上依次输出该整数的个位、十位和百位。*/
# include
int main(void)
{
int a,b,c,d;
printf("请输入三位数字\n");
scanf("%d",&a);
b=a/100;
c=a/10%10;
d=a%10;
printf("百位数字是%d,十位数字是%d,个位数字是%d\n",b,c,d);
return 0;
}
第8题 从键盘读取三个整数给变量a、b、c,然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原来的值给a,输出交换结束后a、b、c的值。
/*此程序于2017年3月1日编写,目的:从键盘读取三个整数给变量a、b、c,
然后交换它们中的数,把a中原来的值给b,把b中原来的值给c,把c中原
来的值给a,输出交换结束后a、b、c的值。*/
# include
int main(void)
{
int a,b,c,d,e; //交换n个数,需要n-1个中间变量,则此程序需要五个变量//
printf("请输入三个整数,中间以逗号隔开\n");
scanf("%d,%d,%d",&a,&b,&c);
d=a;
e=b;
a=c;
c=b;
b=d;
printf("a=%d b=%d c=%d\n",a,b,c);
return 0;
}
/*此程序还可以用指针进行如下:
# include
void huhuan_3(int *p,int *q, int *r) //定义函数//
{
int t=*p; //t存放*p地址上的数据,并且赋给t//
*p=*q;
*q=*r;
*r=t;
}
void main()
{
int a,b,c;
printf("请输入三个数(以逗号隔开):\n");
scanf("%d,%d,%d",&a,&b,&c);
printf("交换后的结果:\n");
huhuan_3(&a,&b,&c); //执行时,会将a,b,c的值赋给定义函数中的指针地址*p,*q,*r//
printf("a=%d b=%d c=%d\n",a,b,c);
}
*/