C语言程序设计·谭浩强(第四版)第二章课后习题的答案,算法——程序的灵魂
C语言程序小练习
1、用C语言设计程序算出1-1/2+1/3-14+1/5。。。+1/99-1/100的值
#include<stdio.h>
int main()
{
int i=;
double a=1.0,b=2.0,sum;
while(b<=)
{
i=-i;
sum=i/b;
a=a+sum;
b=b+;
}
printf("%f\n",a);
return ;
}
2、用C语言设计程序算出1x2x3x4x5的值
#include<stdio.h>
int main()
{
int t,i;
t=;
i=;
while(i<=)
{
t=t*i;
i=i+;
}
printf("%d\n",t);
return ;
}
版本1
#include<stdio.h>
int main()
{
int i,s=;
for(i=;i<;i++)
{
s=s*i;
}
printf("%d\n",s);
return ;
}
版本2
3,、用C语言设计程序算出两个数的最大值
//第一种
#include<stdio.h>
int main()
{
int a,b;
scanf("%d,%d",&a,&b);
if(a<b)a=b;
printf("%d\n",a);
return ;
} //第二种
#include<stdio.h>
int main()
{
int max(int x,int y);//声明max函数
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);//调用下面定义的max函数
printf("%d\n",c);
return ;
} int max(int x,int y)
{
if(x>y)return(x);
else return(y);
}
4、用C语言设计程序算出三个数中的最大值
//第一种
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a<b)a=b;
if(a<c)a=c;
printf("%d\n",a);
return ;
} //第二种
#include<stdio.h>
int main()
{
int max(int x,int y,int z);
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
int temp=max(a,b,c);
printf("%d\n",temp);
return ;
}
int max(int a,int b,int c)
{
int max2(int x,int y);
int num=max2(a,b);
int result=max2(num,c);
return(result);
}
int max2(int x,int y)
{
if(x>y)return(x);
else return(y);
} //第三种
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
{
if(a<c)a=c;
}
else
{
if(b>c)a=b;
else a=c;
}
printf("%d\n",a);
return ;
}
//还有很多。。。
5、用C语言设计程序算出1到12之间奇数的乘积
#include<stdio.h>
int main()
{
int i,s=;
for(i=;i<;i++)
{
if(i%!=)//取模(余数),不为零i为奇数不能被整除,否则能被整除为偶数
s=s*i;
else
continue; }
printf("%d\n",s);
return ;
}
#include<stdio.h>
int main()
{
int t,i;
t=;
i=;
while(i<)
{
if(i%!=)
t=t*i;
i=i+;
}
printf("%d\n",t);
return ;
}
版本二
课后习题P36
8.1、输出1900——2000年中是闰年的年份,符合下面两个条件之一的年份是闰年
1)能被4整除,但不能被100整除;
2)能被100整除,且能被400整除。
#include<stdio.h>
int main()
{
int i;
for(i=;i<=;i++)
{
if((i%== && i%!=)|| i%==) //闰年的经典判断条件
printf("%d is a leap year!\n",i);
else
printf("%d is not a leap year!\n",i); }
return ;
}
4.1、两数互换
//互换值的位置
#include<stdio.h>
int main()
{
int a,b,c;
printf("输入两个值并互换>>: \n");
scanf("%d,%d",&a,&b);
c=a;
a=b;
b=c;
printf("%d %d\n",a,b);
return ;
} //经典互换,把大的值放第一位
#include<stdio.h>
int main()
{
int a,b,c;
printf("请输入两个值并互换>>: \n");
scanf("%d,%d",&a,&b);
if(a<b)
{
c=b;
b=a;
a=c;
}
printf("%d %d\n",a,b);
return ;
}
互换位置
4.2、依次将10个数输入,要求输出其中最大的数。
#include<stdio.h>
int main()
{
int i,a[],s=;
printf("请输入10个数字>>: \n");
for(i=;i<=;i++)
{
scanf("%d",&a[i]);
}
for(i=;i<=;i++)
{
if(s<a[i])
s=a[i];
}
printf("最大的数是: %d\n",s);
return ;
}
4.3、按大小顺序输出一些数
#include<stdio.h>
int main()
{
int i,j,a[],s=;
printf("请输入三个整数>>: \n");
for(i=;i<;i++)
{
scanf("%d",&a[i]);//存储输入数值
}
for(i=;i<;i++) //双循环
{
for(j=i+;j<;j++)//第二个循环到n-1,第二个循环到n,
if(a[i]<a[j])//每次拿前面的数与后面的数比较,即把小的数值与下一个数比较
//小于号表示从大到小,大于号表示从小到大排列
{
s=a[i];
a[i]=a[j];
a[j]=s;
}
}
for(i=;i<;i++)//重新定义循环输出数组中新排列的数
printf("%d-",a[i]);
return ;
}
输入三个数
#include<stdio.h>
int main()
{
int i,j,a[],s=;
printf("请输入三个整数>>: \n");
for(i=;i<;i++)
{
scanf("%d",&a[i]);//存储输入数值
}
for(i=;i<;i++) //双循环
{
for(j=i+;j<;j++)//第二个循环到n-1,第二个循环到n,
if(a[i]<a[j])//每次拿前面的数与后面的数比较,即把小的数值与下一个数比较
//小于号表示从大到小,大于号表示从小到大排列
{
s=a[i];
a[i]=a[j];
a[j]=s;
}
}
for(i=;i<;i++)//重新定义循环输出数组中新排列的数
printf("%d-",a[i]);
return ;
}
输入五个数
4.4、求1+2+3+4+5+···+100。
#include<stdio.h>
int main()
{
int i=,t=;
while(i<)
{
i=i+;//最后一个数99+1=100
t=t+i;
}
printf("sum is %d\n",t);
return ;
}
while循环
#include<stdio.h>
int main()
{
int i,sum=;
for(i=;i<=;i++)
sum=sum+i;
printf("sum is %d\n",sum);
return ;
}
for循环
4.5、判断一个数n能否同时被3和5整除。
#include<stdio.h>
int main()
{
int n;
printf("输入一个整数能被3和5整除返回TRUE否则返回FALSE!\n");
printf("输入>>: ");
scanf("%d",&n);
if(n%==&&n%==)
printf("TRUE\n");
else
printf("FALSE!\n");
return ;
}
4.6、将100~~200之间的素数输出。
#include<stdio.h> //采用调用函数和求根取素.
#include<math.h> //下面用到sqrt,所以需要包含数据函数.sqrt是求根,属数学函数. int main()
{
int prime_number(int m);//要先声明
int i;
for (i=; i<=; i++) //指定区间
{
if(prime_number(i) == ) //i是实参,传入形参m中进行运算,然后再由形参j带出返回
printf("%d \n ",i);
}
return ;
}
int prime_number(int m) //m是形参,用于接收实参i给的值
{
int j,k;
k=(int)sqrt(m); //求根,(int)是强制转换,求根里要是浮点型.
for(j=;j<=k;j++)
{
if(m%j==)
return ; //返回值,0为不是素数,1是素数
}
return ;
}
4.7、求两个数m和n的最大公约数。
#include<stdio.h>
int main()
{
int m,n,c;
int gcd(int x,int y);
printf("请输入两个数>>: \n");
scanf("%d,%d",&m,&n);
c=gcd(m,n); //获取最大公约数
printf("%d 和 %d 的最大公约数是:%d\n",m,n,c);
return ;
}
int gcd(int x,int y)
{
int temp;
while(x%y!=)
{
temp=y;
y=x%y;
x=temp;
}
return y;
} 最大公约数
最大公约数
补充:最小公倍数
#include<stdio.h>
int main()
{
int lcm(int x,int y);
int m,n,c;
printf("请输入两个数>>: \n");
scanf("%d,%d",&m,&n);
c=lcm(m,n);
printf("最小公倍数是: %d\n",c);
return ;
}
int lcm(int x,int y)
{
int i,temp;
if(x<y) //保证x,y中较大的数在x上,小的数在y上,小于号降序,大于号升序。
{ //下面三行是经典代码,实现两个数互换
temp=x;
x=y;
y=temp;
}
for(i=;i<=y;i++)//设定一个区间,从1到小的数之间的循环
{
if(!((x*i)%y)) //反复运算,直到取模无余数,那么小的数x乘以区间当前的i值,就是最小公倍数
{
return x*i;
}
}
} 最小公倍数
最小公倍数
#include<stdio.h>
int main()
{
int gcd(int x,int y);
int lcm(int x,int y);
int m,n,c,d;
printf("输入两个数字: \n");
scanf("%d,%d",&m,&n);
c=gcd(m,n);
d=lcm(m,n);
printf("最大公约数是: %d\n",c);
printf("最小公倍数是: %d\n",d);
return ;
}
int gcd(int x,int y)
{
int temp;
while(x%y!=)
{
temp=y;
y=x%y;
x=temp;
}
return y;
}
int lcm(int x,int y)
{
int i,temp;
if(x<y)
{
temp=y;
y=x;
x=temp;
}
for(i=;i<=y;i++)
{
if(!((x*i)%y))
{
return x*i;
}
}
}
综合
C语言程序设计·谭浩强(第四版)第二章课后习题的答案,算法——程序的灵魂的更多相关文章
- 谭浩强第四版第九章课后习题12>>>建立一个链表,每个节点包括:学号、姓名、性别、年龄。输入一个年龄,若链表 中的结点所包含的年龄等于此年龄,则删除此结点。
#include<stdio.h> #include<stdlib.h> #define N sizeof(link) typedef struct lin { struct ...
- 关于指针的笔记【1】【C语言程序设计-谭浩强】
指针是什么? 一个 变量的地址称为该变量的"指针"[将地址形象化的称为“指针”].(指针是什么百度百科) 注意区分储存单元的地址和内容这两个概念的区别. 直接访问:直接按变量名进行 ...
- 谭浩强C语言第四版第九章课后习题7--9题(建立,输出,删除,插入链表处理)
#include<stdio.h> #include<stdlib.h> #define N sizeof(link) typedef struct stu { struct ...
- c++面向对象程序设计 课后题 答案 谭浩强 第四章
c++面向对象程序设计课后题答案 谭浩强 第四章 1: #include <iostream> using namespace std; class Complex {public: Co ...
- c++面向对象程序设计 谭浩强 第一章答案
c++面向对象程序设计 谭浩强 答案 第一章 目录: c++面向对象程序设计 谭浩强 答案 第一章 c++面向对象程序设计 谭浩强 答案 第二章 c++面向对象程序设计 谭浩强 答案 第三章 c++面 ...
- c++面向对象程序设计 谭浩强 第三章答案
2: #include <iostream> using namespace std; class Date {public: Date(int,int,int); Date(int,in ...
- c++面向对象程序设计 谭浩强 第二章答案
类体内定义成员函数 #include <iostream> using namespace std; class Time { public: void set_time(); void ...
- 视觉slam十四讲第8章课后习题3+稀疏直接法程序注释
版权声明:本文为博主原创文章,转载请注明出处: http://www.cnblogs.com/newneul/p/8571653.html 3.题目回顾:在稀疏直接法中,假设单个像素周围小块的光度也不 ...
- c++面向对象程序设计 谭浩强 第五章答案
1: #include <iostream> using namespace std; class Student {public: void get_value() {cin>&g ...
随机推荐
- Informatica学习笔记
Informatica学习笔记1:UPDATE AS INSERT 问:要求实现每天抽取数据,而且是如果有改变才抽取更新,没有就不更新,因为源表中有最后修改时间的字段,我让它 和SESSION上次运行 ...
- jmeter中CSV Data Set Config各项说明
Config the CSV Data Source: 1)Filename:csv文件的名称(包括绝对路径,当csv文件在bin目录下时,只需给出文件名即可) 2)File encoding:csv ...
- 猿创|有赞的zan framework安装与使用
1.准备工作 1.1 一台腾讯云服务器2核CPU+2G内存的Linux CentOS 7.2(谢谢小杨同学@erchoc) 1.2 预装lnmp一键安装包环境,官方地址:lnmp一键安装包 (如不会使 ...
- 1.LVS理论基础
查看我的有道云笔记: http://note.youdao.com/noteshare?id=68e0ca45757943e482ba390d4d49369f&sub=4A2A593CDE2D ...
- TSP 模拟退火
TSP——模拟退火解法 都知道TSP是经典的NP问题,从一个点开始遍历所有点,不重复,求最短路径. 可以用枚举终点,跑流量为2的最小费用,图论来做,时间复杂度为 费用流已经用到堆优化了.显然点,边 ...
- 【[SCOI2007]修车】
题目 只能做网络流度日了 当然是要对每个修车的人拆点,把每个人拆成\(n\)个点用于接收不同时刻的车 每个车\(i\)向每个时刻\(k\)的人\(j\)连边,边权为\(t[i][j]*k\)这样就是这 ...
- POJ Treasure Exploration 【DAG交叉最小路径覆盖】
传送门:http://poj.org/problem?id=2594 Treasure Exploration Time Limit: 6000MS Memory Limit: 65536K To ...
- c++字符串初始化
#include<string> string s1 = "abcdefg"; string s2("abcdefg");
- 使用百度新闻RSS
function getbaidu() { $result=""; //RSS源地址列表数组 $rssfeed = array("http://news.baidu.co ...
- 创建VS工程使用神经网络库——FANN
编译: sourceforge上的FANN库带VS2010的工程,我机器上装的VS2005,用不了,愁人,只能手动创建工程了,编译不过,度娘不管用,FQ麻烦,用雅虎搜到一个工程的创建配置,调整配置试一 ...