目录
《C Primer Plus》编程练习
第9章
1.exercise1.c
设计一个函数min(x, y),返回两个double类型值的较小值。在一个简单的驱动程序中测试该函数。
//exercise9.1
#include<stdio.h>
double getmin(double x,double y);//获取两者中较小值的函数
int main(void)
{
double min;
double a,b;
printf("请输入两个数字:\n");
while(scanf("%lf %lf",&a,&b)!=2)
//在scanf()中double用%lf,float用%f,在这用%f会出错;在printf()中都用%f
{
printf("输入错误,请输入两个数字:\n");
}
min=getmin(a,b);//调用函数
printf("两者中较小的值是:%g\n",min);//
return 0;
}
double getmin(double x,double y)
{
return (x<y)?x:y;
}
输出如下:
请输入两个数字:
3.7 2.8
两者中较小的值是:2.8
在scanf()中double用%lf,float用%f,在这用%f会出错;在printf()中都用%f。
2.exercise2.c
设计一个函数chline(ch, i, j),打印指定的字符j行i列。在一个简单的驱动程序中测试该函数。
//exercise9.2
#include<stdio.h>
#define CHAR 'x'
void chline(char ch,int i,int j);//打印函数
int main(void)
{
int i;//要打印的行
int j;//要打印的列
printf("请输入要打印的行数:\n");
while(scanf("%d",&i)!=1)
{
printf("输入错误,请输入要打印的行数:\n");
}
while(getchar()!='\n')
{
continue;
}
printf("请输入要打印的列数:\n");
while(scanf("%d",&j)!=1)
{
printf("输入错误,请输入要打印的列数:\n");
}
while(getchar()!='\n')
{
continue;
}
chline(CHAR,i,j);
return 0;
}
void chline(char ch,int i,int j)
{
int a,b;
for(a=0;a<i;a++)
{
for(b=0;b<j;b++)
{
printf("%c",ch);
}
printf("\n");
}
}
输出如下:
请输入要打印的行数:
5
请输入要打印的列数:
3
xxx
xxx
xxx
xxx
xxx
3.exercse3.c
编写一个函数,接受3个参数:一个字符和两个整数。字符参数是待打印的字符,第1个整数指定一行中打印字符的次数,第2个整数指定打印指定字符的行数。编写一个调用该函数的程序。
//exercise9.3
#include<stdio.h>
void chline(char ch,int i,int j);//打印函数
int main(void)
{
char ch;//要打印的字符
int i;//要打印的行
int j;//要打印的列
printf("请输入要打印的字符:\n");
while(scanf("%c",&ch)!=1)//输入字符
{
printf("输入错误,请输入要打印的字符:\n");
}
while(getchar()!='\n')
{
continue;
}
printf("请输入要打印的行数:\n");
while(scanf("%d",&i)!=1)
{
printf("输入错误,请输入要打印的行数:\n");
}
while(getchar()!='\n')
{
continue;
}
printf("请输入要打印的列数:\n");
while