2-4(6)将100~200之间的素数输出。
#include
#include /*1.用了sqrt()不要忘记引用math函数*/
int main()
{
int sum,i,n; //指非素数的个数
for( i=100;i<=200;i++) /*2.for循环中的语句用分号连接*/
for ( n = (int)sqrt(i);n>=2;n--) /*3.(int)要有括号括起*/
if (i%n == 0)
{
sum+=1;
break; /*4.注意break的运用*/
}
else
continue;
printf("100至200间素数的个数为%d\n",101-sum);
return 0;
}
2-4(7)求两个数 m 和 n 的最大公约数。
#include
int main() /*当遇到 undefined reference to `WinMain'的报错时,main可能打错了*/
{
int Gongyueshu (int x,int y);
int a[2],i,t,gongyueshu;
for(i=0;i<=1;i++) //for循环中的语句用分号连接;语句顺序不能错
{
printf("请输入第%d个数",i+1);
scanf("%d",&a[i]); //得到输入的两个数字
}
if (a[0]<a[1])
{
t=a[0];
a[0]=a[1];
a[1]=t; //保证a[0]是较大的数字
}
gongyueshu = Gongyueshu (a[0],a[1]); //多出现一个变量时,要及时定义这个变量
printf("最大公约数为%d\n",gongyueshu);
return 0;
}
int Gongyueshu (int x,int y) //求两个数最大公约数的函数
{
int yushu;
while (x%y !=0 )
{
yushu = x%y;
x = y;
y = yushu; /*大的数对小的数取余,若余数不为零,则用小的数对余数再次取余,知道余数为零 (用循环语句处理)*/
}
return y;
}
2-4(8) 求方程ax²+bx+c=0的根。
#include
#include //调用math函数,因为要用到 sqrt()开根号
int main()
{
float a,b,c,derta; //***尤其要注意a、b、c 要设为浮点型,因为 int/int 的结果还是 int(余数会被抹掉) ,仅将 resl设为 float 是不够的
float resl1,resl2;
printf("请分别输入方程ax2+bx+c=0(a≠0)中a,b,c的值:");
scanf("%f %f %f",&a,&b,&c);
derta = a*b- 4*a*c;
if (derta == 0)
{
resl1 = -b/(2*a);
printf("此方程的根为%f\n",resl1);
}
else if(derta < 0)
printf("此方程无实根。\n");
else
{
resl1 = (-b+sqrt(derta))/(2*a);
resl2 = (-b-sqrt(derta))/(2*a);
printf("此方程的根为 %f 和 %f",resl1,resl2);
}
return 0;
}
2-8(1)输出1900 — 2000 年中是闰年的年份,符合下面两个条件之一的是闰年:
① 能被四整除但不能被一百整除
② 能被一百整除但能被四百整除
#include
int main()
{
int n=1900;
printf("1900-2000年中是闰年的有:") ;
for(n=1900;n<=2000;n++)
{
if (((n%4==0)&&(n%100!=0))||((n%100==0)&&(n%400==0))) //在用&&或者||时,每一条语句都需要加()
printf("%d\t",n);
else
continue;
}
printf("\n");
return 0;
}
2-8(2) 同2-4(8)
2-8(3)输入十个数,输出其中最大的一个数。
#include
int main()
{
int a[10],t,i;
for(i=0;i<=9;i++)
{
printf("请输入第%d个数的值:",i+1);
scanf("%d",&a[i]); //将输入的十个数存入数组
}
for(i=1;i<=9;i++)
{
if (a[0]<a[i])
{
t = a[0];
a[0]=a[i]; //只需要一次循环
a[i]=a[0]; //使得a[0]永远都是最大的那个
}
else
continue;
}
printf("这十个数当中最大的数是:%d\n",a[0]);
return 0;
}
3-1 加入我国国民生产总值的年增长率为9%,计算十年后我国国民生产总值与现在相比增长多少百分比?
#include
#include //要用pow()进行运算
int main()
{
int n=10;
float r=0.09,p,resl;
resl = pow((1+r),n);
printf("10年后我国国民生产总值与现在相比增长了%0.2f倍",resl);
printf("\n"); //建议单独把"\n"的模板打出来
return 0;
}
3-6 请编程序将“China”译成密码,密码的规律是:用原来的字母后面第四个字母代替原来的字母,并分别用putchar函数和printf函数输出这五个字符。
#include
int main()
{
char c1='C',c2='h',c3='i',c4='n',c5='a';
c1=c1+4;
c2+=4;
c3+=4;
c4+=4; //一个字母加4后表示的是字母表中这个字母的后四位
c5+=4; //小写字母减去32后表示的是这个字母的大写
printf("编译后的密码为:%c%c%c%c%c\n",c1,c2,c3,c4,c5);
putchar(c1);
putchar(c2);
putchar(c3);//相应的getchar函数只能接受一个字符,并且getchar函数可以接受屏幕控制字符(如:换行符)所以把该输入的字符输入完再使用Enter完成储存
putchar(c4); //putchar()既可以输出一个字符,也可以输出屏幕控制字符
putchar(c5);
putchar('\n'); //***特别注意:putchar()中的控制字符用的是单引号‘’!
return 0;
}