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 ...
随机推荐
- JQUERY实现点击INPUT使光标移动到最后或指定位置
下面本文章给大家简单介绍一下JQUERY实现点击INPUT使光标移动到最后或指定位置例子,希望对各位有帮助,你要知道面对一个 处女座的 需求者, focus()是远远不够的,比如说“我点进去的时候光标 ...
- 同时开左右两个SAPGUI编辑器显示同一段ABAP代码
很多文本编辑器都支持同时开左右两个窗口显示同一段代码,使用场景可能是比较同一段代码的不同版本差异,或者是ABAP里,同一段代码在Netweaver不同版本里的实现差异,比如版本为SP1的系统A和版本为 ...
- Jmeter入门14 后置处理器JSON Extractor 提取json的多个值
json串 []表示对象组成的数组,{}表示对象. 对象里包含多个 "属性":属性值.属性值可以是值,或数组,或对象. JSON Extractor使用json path表达式匹配 ...
- POJ 2182 Lost Cows 【树状数组+二分】
题目链接:http://poj.org/problem?id=2182 Lost Cows Time Limit: 1000MS Memory Limit: 65536K Total Submis ...
- GreenPlum 与hadoop什么关系?(转)
没关系. gp 可以处理大量数据, hadoop 可以处理海量. gp 只能处理湖量,或者河量. 无法处理海量. 作者:SallyLeo链接:https://www.zhihu.com/questio ...
- C# File流操作
#region 文件读出 private void button1_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenF ...
- GYM 101550 G.Game Rank(模拟)
The gaming company Sandstorm is developing an online two player game. You have been asked to impleme ...
- AngularJS web应用程序
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- py faster rcnn+ 1080Ti+cudnn5.0
看了py-faster-rcnn上的issue,原来大家都遇到各种问题. 我要好好琢磨一下,看看到底怎么样才能更好地把GPU卡发挥出来.最近真是和GPU卡较上劲了. 上午解决了g++的问题不是. 然后 ...
- Anaconda的使用—Spyder常用快捷键
Ctrl + 1: 注释/反注释 Ctrl + 4/5: 块注释/块反注释 Ctrl + L: 跳转到行号 Tab/Shift + Tab: 代码缩进/反缩进 Ctrl +I:显示帮助