C语言程序设计第5版课后习题
123芥末丸
热爱可抵岁月漫长
展开
-
一个球从100米高度自由落下,每次落地后反弹回高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米,第10次反弹多高
#include<stdio.h>int main(){ float h=100,s1=0,s2=0,s; //定义球的初始高度h,下落路程s1,反弹路程s2 int n; for(n=1;n<=10;n++){ s1=s1+h; //经过第n次落地的总下落路程 h=h/2; //第n次的反弹高度 s2=s2+h; //经过n次反弹后经过的总反弹路程 } s2=s2-h; //经过9次反弹的.原创 2021-12-21 17:21:35 · 479 阅读 · 0 评论 -
【求数列2/1,3/2,5/3,8/5,13/8,21/13, ......的前20项之和】
#include<stdio.h>int main(){ float a[20]={1.0},b[20]={2.0},sum=2.0; //定义并初始化数组a与数组b和sum int num; //定义项数num for(num=1;num<20;num++){ //从第2项开始 a[num]=b[num-1]; .原创 2021-12-21 16:36:12 · 640 阅读 · 0 评论 -
求1000以内的完数,以及所求完数的因子
#include<stdio.h>int main(){ int n,i,sum; for(n=1;n<=1000;n++){ for(i=1,sum=0;i<n;i++){ if(n%i==0){ sum=sum+i; } } if(sum==n){ printf("%d its factors are ",n); for(i=1;i<n;i++){ if(n%i==0){ printf("%d",i);.原创 2021-12-21 15:42:07 · 307 阅读 · 0 评论 -
依次将10个数输入,要求输出其中最大的数。
#include<stdio.h>int main(){ int max(int x,int y); //声明max函数 int a[10],i,m; //定义数组a,整形变量i和m for(i=0;i<10;i++){ //利用for循环,依次将10个数初始化 scanf("%d",&a[i]); //从键盘中输入整数 } for(i=0,m=a[0];i<10;i++){ m=max(m,a[i+1]); //调用max函数 .原创 2021-12-21 09:41:02 · 1880 阅读 · 0 评论 -
求两个数m和n的最大公约数。
#include<stdio.h>int main(){ int mgy(int x,int y); //声明mgy函数 int m,n; scanf("%d %d",&m,&n); //输入2个数 printf("m和n的最大公约数是:%d",mgy(m,n)); //调用mgy函数 return 0;}int mgy(int x,int y){ .原创 2021-12-21 10:25:32 · 749 阅读 · 0 评论 -
【写2个函数分别求2个整数a,b的最大公约数p和最小公倍数q】(利用辗转相除法求最大公约数p,利用公式(a*b/p=q)求最小公倍数q)
#include<stdio.h>int gcd(int x,int y); //声明求最大公约数的函数int lcm(int i,int j); //声明求最小公倍数的函数int main(){ int a,b; printf("请输入2个数\n"); scanf("%d %d",&a,&b); printf("%d与%d的最大公约.原创 2021-12-02 13:12:46 · 662 阅读 · 0 评论 -
输出以下4x5的矩阵(利用二维数组的初始化和输出)
4x5d 矩阵:1 2 3 4 52 4 6 8 103 6 9 12 154 8 12 16 20#include<stdio.h>int main(){ int i,j,a[4][5]={{1,2,3,4,5},{2,4,6,8,10},{3,6,9,12,15},{4,8,12,16,20}}; for(i=0;i<4;i++){ for(j=0;j<5;j++){ printf("%d ",a[i][j]); if((j+1)%5.原创 2021-11-30 23:38:28 · 1220 阅读 · 0 评论 -
输出以下4*5的矩阵(利用循环的嵌套)
4x5的矩阵:1 2 3 4 52 4 6 8 103 6 9 12 154 8 12 16 20#include<stdio.h>int main(){ int i,j,s=1; for(i=1;i<=4;i++){ for(j=1;j<=5;j++){ s=i*j; //观察规律,每个值等于行数X列数 printf("%d ",s); if(j%5==0) printf("\n"); //控制原创 2021-11-30 23:32:15 · 3346 阅读 · 0 评论 -
写一个判素数的函数
#include<stdio.h>int main(){ int p(int a); int a; printf("please input a numble\n"); scanf("%d",&a); p(a); return 0;}int p(int a){ int i; int j=sqrt(a); for(i=2;i<=j;i++){ if(a%i==0){ break; } } if(i<=j)printf("%d不是素数\.原创 2021-11-28 18:37:19 · 491 阅读 · 0 评论 -
求100之内的素数
#include<stdio.h>int main(){ int a,b,c; printf("100之内的所有素数有:\n"); for(a=2;a<=100;a++){ for(b=2;b<a;b++){ if(a%b==0)break; } if(b>=a)printf("%d ",a); } return 0;}原创 2021-11-25 11:44:13 · 548 阅读 · 0 评论 -
判断输入的数是否为素数(素数即质数,除了1和此数本身外,不能被其他自然数整除的数,换句话说就是:素数只有1和本身这2个正因数)
#include<stdio.h>int main(){ int a,b; //定义a是从键盘上输入的数,b是被除数 printf("请输入一个正整数\n"); scanf("%d",&a); while(a<=0){ //此循环是为了让用户输入合法数字 printf("输入错误,请重新输入\n"); scanf("%d",&a); } for(b=2;b<a;b++){ //让a除b,b的变化范围是:2~a-1原创 2021-11-23 20:18:27 · 2715 阅读 · 0 评论 -
【求Fibonacci数列前40个数】(利用数组)
#include<stdio.h>int main(){ int a[40]={1,1},i,j; printf("Fibonacci数列的前40个数是:\n"); for(i=0;i<2;i++)printf("%d ",a[i]); //先列出Fibonacci数列的前2个数 for(i=2;i<40;i++){ a[i]=a[i-1]+a[i-2]; //从a[2]即第3个数开始,该数是前2个数之和 printf("%d ",a[i]); if((原创 2021-11-23 19:24:48 · 5835 阅读 · 0 评论 -
【C程序设计第5版课后习题】:将一个数组从小到大排序(冒泡法)
#include<stdio.h>int main(){ int a[10]={1,3,5,2,43,88,66,54,65,99},i,j,temp; printf("原来的数组是:"); for(i=0;i<10;i++){ printf("%d ",a[i]); } printf("\n"); for(j=0;j<9;j++){ for(i=0;i<9-j;i++){ ...原创 2021-11-18 12:56:29 · 545 阅读 · 0 评论 -
【C程序设计第5版P165第5题】:将一个数组中的值按照逆序重新存放
#include<stdio.h>int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},i,j; printf("顺序是:\n"); for(i=0;i<10;i++){ printf("%d ",a[i]); } printf("\n逆序是:\n"); for(i=9;i>=0;i--){ printf("%d ",a[i]); }}...原创 2021-11-18 13:02:53 · 392 阅读 · 0 评论 -
【用C语言写程序】9 9乘法表(利用双重for循环)
#include<stdio.h>int main(){ int i,j; for(i=1;i<10;i++){ for(j=1;j<=i;j++){ printf("%d*%d=%d ",i,j,i*j); } printf("\n"); } return 0;}原创 2021-11-18 21:37:37 · 2093 阅读 · 0 评论 -
【C语言】输入所有的“水仙花数”(水仙花数就是指一个3位数,其各位数字立方和等于该数本身)如,153就是水仙花数,因为153=1*1*1+5*5*5+3*3*3
#include<stdio.h>int main(){ int a,b,c,i; for(i=100;i<=999;i++){ a=i/100; //a为数字i百位上的数 b=i%100/10;//b为数字i十位上的数 c=i%10; //c为数字i个位上的数 if(i==a*a*a+b*b*b+c*c*c) { ...原创 2021-11-18 22:28:10 · 4194 阅读 · 0 评论 -
【C语言】分别求1到20的阶乘及所有阶乘之和(注意要用long long int (可以储存8个字节)来定义,因为要较大的储存量)
分别求1到20的阶乘及所有阶乘之和原创 2021-11-18 23:08:49 · 5492 阅读 · 1 评论