概述
C语言习题的编码、注解 、小笔记 以及小经验的记录与分享
【第四版谭浩强课后习题】
第二章 算法——程序的灵魂
2-4(6)将100~200之间的素数输出。
#include<stdio.h>
#include<math.h> /*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间素数的个数为%dn",101-sum);
return 0;
}
2-4(7)求两个数 m 和 n 的最大公约数。
#include<stdio.h>
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("最大公约数为%dn",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<stdio.h>
#include<math.h> //调用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("此方程的根为%fn",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<stdio.h>
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("%dt",n);
else
continue;
}
printf("n");
return 0;
}
2-8(2) 同2-4(8)
2-8(3)输入十个数,输出其中最大的一个数。
#include<stdio.h>
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("这十个数当中最大的数是:%dn",a[0]);
return 0;
}
第三章 最简单的C程序设计——顺序程序设计
3-1 加入我国国民生产总值的年增长率为9%,计算十年后我国国民生产总值与现在相比增长多少百分比?
#include<stdio.h>
#include<math.h> //要用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<stdio.h>
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%cn",c1,c2,c3,c4,c5);
putchar(c1);
putchar(c2);
putchar(c3);//相应的getchar函数只能接受一个字符,并且getchar函数可以接受屏幕控制字符(如:换行符)所以把该输入的字符输入完再使用Enter完成储存
putchar(c4); //putchar()既可以输出一个字符,也可以输出屏幕控制字符
putchar(c5);
putchar('n'); //***特别注意:putchar()中的控制字符用的是单引号‘’!
return 0;
}
最后
以上就是糟糕鸡翅为你收集整理的C程序设计第四版谭浩强课后习题C语言习题的编码、注解 、小笔记 以及小经验的记录与分享的全部内容,希望文章能够帮你解决C程序设计第四版谭浩强课后习题C语言习题的编码、注解 、小笔记 以及小经验的记录与分享所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复