d6.docx
《d6.docx》由会员分享,可在线阅读,更多相关《d6.docx(11页珍藏版)》请在冰豆网上搜索。
d6
1:
布置任务:
(1)有如下函数:
用scanf函数输入x的值,求y的值。
提示:
调用绝对值函数和对数函数
#include
#include
main()
{
intx,y;
puts("pleaseinputx");
scanf("%d",&x);
if(x<0)
{
y=fabs(x);
printf("x=%3d,y=x=%d\n",x,y);
}
elseif(x>=10)
{
y=log(x);
printf("x=%3d,y=lnx=%d\n",x,y);
}
else
{
y=pow(x,2);
printf("x=%3d,y=x*x=%d\n",x,y);
}
getch();
}
(2)从键盘输入三个整数a,b,c,编程求最大数并输出结果。
方法1:
main()
{
intnum1,num2,num3,max;
printf("Pleaseinputthreenumbers:
");
scanf("%d,%d,%d",&num1,&num2,&num3);
if(num1>num2)
max=num1;
else
max=num2;
if(num3>max)
max=num3;
printf("max=%d\n",max);
getch();
}
方法2:
main()
{
inta,b,c,temp,max;
puts("pleaseinputthreenumber");
scanf("%d,%d,%d",&a,&b,&c);
temp=(a>b)?
a:
b;
max=(temp>c)?
temp:
c;
printf("max=%d\n",max);
getch();
}
方法3:
main()
{
inta,b,c,temp,max;
puts("pleaseinputthreenumber");
scanf("%d,%d,%d",&a,&b,&c);
max=a;
if(b>max)
if(b>c)
max=b;
elseif(c>max)
max=c;
printf("max=%d\n",max);
getch();
}
(3)编程求解一元二次方程ax2+bx+c=0的实数根。
提示:
从键盘输入a,b,c,首先求△=b2-4ac的值,如果△=0,则输出方程两个相等的根,如果△<0,则输出方程没有根,如果△>0,则输出方程的两个不相等的实数根。
#include"math.h"/*为使用求平方根函数sqrt(),包含math.h头文件*/
main()
{floata,b,c,delta,x1,x2;
printf("Inputa,b,c:
");
scanf("%f,%f,%f",&a,&b,&c);/*输入方程的三个系数的值*/
delta=b*b-4*a*c;/*求判别式的值赋给disc*/
if(delta>0)
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("\nx1=%6.2f\nx2=%6.2f\n",x1,x2);
}
elseif(delta==0)
{
x1=x2=(-b)/(2*a);
printf("\nx1=x2=%f\n",x1,x2);
}
else
printf("thereisnokey");
getch();
}
(4)输入两个实数,按由小到大的顺序输出这两个实数。
main()
{
floata,b,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a>b)
{t=a;a=b;b=t;}
printf("%5.2f,%5.2f,%5.2f",a,b,c);
getch();
}
(5)(选作)输入任意三个数num1、num2、num3,按从小到大的顺序排序输出。
提示:
如果你从键盘输入35,24,12,程序运行后应输出12,24,35(按由小到大的顺序)。
main()
{
floata,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf("%5.2f,%5.2f,%5.2f",a,b,c);
getch();
}
(6)用条件运算符,编写程序:
输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。
然后输出最后得到的字符。
main()
{
charch;
scanf("%c",&ch);
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch;
printf("%c",ch);
getch();
}
(7)从键盘任意输入一个年号,判断它是否是闰年。
若是闰年,输出“Yes”,否则输出“No”。
已知符合下列条件之一者是闰年:
■能被4整除,但不能被100整除。
■能被400整除。
■方法1main()
{
intyear;
printf("inputayear:
\n");
scanf("%d",&year);
if(year%400==0)
printf("%disleapyear",year);
else
if(year%4==0&&year%100!
=0)
printf("%disleapyear",year);
else
printf("%disnotleapyear",year);
getch();
}
方法2#include
main()
{
intyear,flag;
printf("Enteryear:
");
scanf("%d",&year);
if((year%4==0&&year%100!
=0)||(year%400==0))
{
flag=1;/*如果year是闰年,则标志变量flag置1*/
}
else
{
flag=0;/*否则,标志变量flag置0*/
}
if(flag)
{
printf("%disaleapyear!
\n",year);/*打印“是闰年”*/
}
else
{
printf("%disnotaleapyear!
\n",year);/*打印“不是闰年”*/
}
}
(8)通过键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。
#include
main()
{
charch;
ch=getchar();
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
printf("ItisanEnglishcharacter!
\n");
}
elseif(ch<='9'&&ch>='0')
{
printf("Itisadigitcharacter!
\n");
}
elseif(ch=='')
{
printf("Itisaspacecharacter!
\n");
}
else
{
printf("Itisothercharacter!
\n");
}
}
(9)编程判断输入整数的正负性和奇偶性。
#include
main()
{
intm;
printf("Inputm:
");
scanf("%d",&m);/*输入一个整数*/
if(m>0)/*是否为正数*/
{
if(m%2==0)/*是正数,且能被2整除,则是正偶数*/
{
printf("%disapositiveeven\n",m);
}
else/*不能被2整除,则是正奇数*/
{
printf("%disapositiveodd\n",m);
}
}
elseif(m<0)/*判断是否为负数*/
{
if(m%2==0)
{
printf("%disanegativeeven\n",m);/*是负偶数*/
}
else
{
printf("%disanegativeodd\n",m);/*是负奇数*/
}
}
else
{
printf("%diszero.Itisaneven\n",m);
}
}
(10)输入三角形的三条边a,b,c,判断它们能否构成三角形。
若能构成三角形,指出是何种三角形(等腰三角形、直角三角形、一般三角形)。
#include
#include
#defineLIMIT1e-1
main()
{
floata,b,c;
intflag=1;
printf("Inputthethreeedgelength:
");
scanf("%f,%f,%f",&a,&b,&c);/*输入三角形的三条边*/
/*三角形的基本条件*/
if((a+b)>c&&((b+c)>a)&&((a+c)>b))
{
if(fabs(a-b)<=LIMIT||fabs(b-c)<=LIMIT
||fabs(c-a)<=LIMIT)/*等腰三角形的条件*/
{
printf("等腰");
flag=0;
}
if(fabs(a*a+b*b-c*c)<=LIMIT
||fabs(a*a+c*c-b*b)<=LIMIT
||fabs(c*c+b*b-a*a)<=LIMIT)/*直角三角形的条件*/
{
printf("直角");
flag=0;
}
if(flag)
{
printf("一般");
}
printf("三角形\n");
}
else
{
printf("不是三角形\n");
}
}