%d\n",max);}
(3)有3个数abc,要求安大小顺序把他们输出。
#include<>voidmain(){inta;intb;intc;intt;scanf("%d%d%d",&a,&b,&c);printf("\n");printf("thefirstnumbers:
");printf("%d,%d,%d\n",a,b,c);if(a
");printf("%d,%d,%d\n",a,b,c);}
(4)求1+2+3+···+100。
#include<>voidmain(){inti;intsum=0;for(i=1;i<=100;i++)sum=sum+i;printf("thesumis:
%d\n",sum);}
(5)判断一个数n能否同时被3和5整除。
#include<>voidmain(){inti;printf("inputi\n");scanf("%d",&i);if(i%3==0&&i%5==0)printf("%disok!
\n",i);elseprintf("%dcannot!
\n",i);}
(6)将100~200之间的素数输出。
#include<>voidmain(){inti,j;for(i=100;i<=200;i++)for(j=2;j
(7)求两个数m和n的最大公约数。
#include<>voidmain(){intm,n;intt;inti;intz=1;scanf("%d%d",&m,&n);if(m>n){t=m;m=n;n=t;}for(i=2;i<=m;i++){if(m%i==0&&n%i==0)z=i;}printf("theansweris:
%d\n",z);}
(8)求方程式
的根。
分别考虑:
①有两个不等的实根;②有两个相等的实根。
#include<>
#include<>
voidmain()
{
floata,b,c;
floatdt;
floatm,n;
floatx1,x2;
printf("inputa,b,c!
\n");
scanf("a=%f,b=%f,c=%f",&a,&b,&c);
dt=sqrt(b*b-4*a*c);
m=-b/(2*a);
n=dt/(2*a);
if(dt<=1e-6)
{
x1=m;x2=m;
printf("theequationhastwoequalroots:
x1=%f,x2=%f\n",x1,x2);
}
if(dt>1e-6)
{
x1=m+n;x2=m-n;
printf("theequationhasdistinctrealroots:
x1=%f,x2=%f\n",x1,x2);
}
}再次说明一下由于我们考虑了实数在内,而实数在计算和存储时有细小误差,所以dt=0用dt<=1e-6表示。
即10的-6次方。
2.5用N-S图表示题中各题的算法。
2.6用伪代码表示题中各题的算法。
(1)输出年中是闰年的年份,符合下面俩个条件之一的年份是闰年。
(一)能被4整除但不能被100整除
(二)能被100整除且能被400整除。
#include<>voidmain(){inti;for(i=1900;i<=2000;i++){if(i%4==0&&i%100)printf("%d\n",i);elseif(i%400==0)printf("%d\n",i);}}
2.7什么叫结构化程序设计他的主要内容是什么
答:
结构化程序设计是进行以模块功能和处理过程设计为主的详细设计的基本原则。
它用基本结构(一般认为是3种:
顺序、选择和循环)为基本思想设计的程序。
这种程序便于编写、便于阅读、便于修改和维护。
这就减少了程序出错的机会,提高了程序的可靠性,保证了程序的质量。
它的主要内容为:
把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。
具体说:
采用以下方法来保证得到结构化的程序:
(1)自顶向下
(2)逐步细化(3)模块化设计(4)结构化编码。
{拓展:
结构化程序的概念首先是从以往编程过程中无限制地使用转移语句而提出的。
转移语句可以使程序的控制流程强制性的转向程序的任一处,在传统流程图中,用"很随意"的流程线来描述转移功能。
如果一个程序中多处出现这种转移情况,将会导致程序流程无序可寻,程序结构杂乱无章,这样的程序是令人难以理解和接受的,并且容易出错。
2.8用自顶向下、逐步细化的方法进行以下算法的设计:
(1)输出1900-2000年中是闰年的年份,符合下面两个条件之一的年份是闰年。
①能被4整除但不能被100整除;②能被100整除切能被400整除。
#include<>voidmain(){inti;for(i=1900;i<=2000;i++){if(i%4==0&&i%100)printf("%d\n",i);elseif(i%400==0)printf("%d\n",i);}}
(2)求
的根。
分别考虑D=
大于0、等于0、小于0这3种情况。
#include<>
#include<>voidmain(){floata,b,c;floatdt;floatm,n;floatx1,x2;printf("inputa,b,c!
\n");scanf("a=%f,b=%f,c=%f",&a,&b,&c);dt=b*b-4*a*c;if(fabs(dt)<=1e-6){x1=-b/(2*a);x2=-b/(2*a);printf("theequationhastwoequalroots:
x1=x2=%f\n",x1);}elseif(dt>1e-6){x1=(-b+sqrt(dt))/(2*a);x2=(-b-sqrt(dt))/(2*a);printf("theequationhasdistinctrealroots:
x1=%f,x2=%f\n",x1,x2);}else{m=(-b)/(2*a);n=sqrt(-dt)/(2*a);printf("theequationhascomplexrealroots:
\nx1=%f+%fi\n",m,n);printf("x2=%f-%fi\n",m,n);
}}
(3)输入10个数,输出其中最大的一个数。
#include<>voidmain(){inta[10];inti;intmax;printf("inputthe10numbers:
\n");for(i=0;i<=9;i++)scanf("%d",&a[i]);max=a[0];for(i=1;i<=9;i++)if(a[i]>max)max=a[i];printf("thelargestnumberis:
%d\n",max);}