吉林大学超星学习通02(2)

跑步进入数组......不懂的东西还有很多。

10. (程序题)

题目编号:Exp02-Basic10,GJBook3-04-15

题目名称:爱因斯坦阶梯

问题描述:设有阶梯,不知其数,但知:每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨7阶,正好到楼顶。编程序求最少共有多少阶。

输入:无

输出:台阶数目

样例:无。详见输入输出说明。

#include<stdio.h>

int main()

{

int n , k = 0;

for(n=6;k==0;n++)

{


if (n % 2 == 1 && n % 3 == 2 && n % 5 == 4 && n % 7 == 0) {

printf("%d", n);

k=k+1;


}


}

return 0;

}

不难。

11. (程序题)

题目编号 :Exp02-Basic11,GJBook3-04-03

题目名称:勒让德多项式

题目描述:

编一个程序,输入x、n,计算勒让德(Legendre)多项式的第 n 项(此题假定n取0时,为勒让德多项式第0项)。

输入:一个浮点数和一个整数,分别对应x和n(0<=n<=20)。

输出:一个浮点数,即勒让德多项式第n项的值,注意小数点后保留到第2位。
 

样例1:

输入:3.4 2
输出:16.84

样例2:

输入:3.4 10
输出:30143685.82

样例3:

输入:-3.4 2
输出:16.84
#include<stdio.h>

int main()

{

double x, p=0, a , b ;

int n,k;

scanf_s("%lf%d", &x, &n);

if (n == 0) p = 1;

else 

if (n == 1) p = x;

else {

b = x; a = 1;

for (k = 2; k <= n; k++) {

p = ((2 * k - 1) / (double)k) * x * b - ((k - 1) /(double) k) * a;

a = b;

b = p;

}

}

printf("%.02lf", p);

return 0;


}

 

12. (程序题)

题目编号 :Exp02-Basic12,GJBook3-04-13

题目名称:数字金字塔

题目描述:编程序,制打印如下所示的n行数字金字塔(n由用户从键盘输入)。

输入:一个正整数 n (≤10)

输出:如上所示的类似数字金字塔。输出由数字 0~9构成的n行数字三角矩阵:其中第一行有1个数,第二行有3个数,依次类推,每个数字占用2位英文字符宽度,宽度不足2位的的在数字左侧补空格;整个数字三角阵,除必要的空格、数字、回车换行符,无多余字符。

样例1:

输入:1
输出:

(注:1的前面有一个空格)

样例2:

输入:3
输出:

(注:末行的第一个数字1前面有一个空格)

#include<stdio.h>

#include<stdlib.h>

int main()

{

int n,m=1,a,b=1;//m控制行 

scanf_s("%d", &n);

system("cls");

for (; m <= n; m++)

{

for (a = 1; a <= (2*n-2*m); a++)printf(" ");

for (a = 1; a <= 2 * m - 1; a++)
{

if(a<=m){

if (b != 10) printf(" %d", b);

else printf(" 0");

if (b == m)continue;

b++;


}

else {

b--;

printf(" %d", b);

}
}

b = 1;

a++;

printf("\n");

}

}

打这个的时候状态奇差,感觉可以更好。

13. (程序题)

题目编号 :Exp02-Enhance01,GJBook3-04-02

题目名称:计算 e^x

题目描述:请计算上述序列的前101项的和(截止到n取100)

输入:一个浮点数,对应x值。

输出:一个浮点数,即e^x的近似值,小数点后保留到第2位。

注:本题不允许使用math.h头文件和相关的pow和exp等函数。

样例1:

输入:0
输出:1.00

样例2:

输入:4.3
输出:73.70
#include<stdio.h>

int main()

{

double x, y=0,z=1;

int n,t;

scanf_s("%lf", &x);

for (n=0; n <= 100; n++)

{

for (t = 0; t <= n; t++)

{

if (t != 0)  { z =z* x / t; }

}


y = y + z;

z = 1;

}

printf("%.02lf", y);

return 0;



}

 

14. (程序题)

题目编号:Exp02-Enhance03

题目名称:公式累加

题目描述:用如下的展开式计算当n为某给定值时,sh(x)的值。

编写程序,对上面的公式读入x,输出序列的和直到尾项的绝对值 小于10^-5。

输入:一个浮点数作为x的值。

输出:一个浮点数,保留小数点后6位。

样例1:

输入:1
输出:1.175198

样例2:

输入:1.5
输出:2.129277
#include<stdio.h>

#include<math.h>

double lyl(double x,double n) {

int a=1;

double b = 1;

for (; a <= 2*n+1; a++) {

b = b * x / a;

}

return b;

}

int main()

{

double x, sh=0,k;

int n=1;

scanf_s("%lf", &x);

k = x;

for (; fabs(k) >= 1e-5; n ++) {

sh = sh + k;

k = lyl(x, n);


}


printf("%.06lf", sh);

return 0;

}

 用了函数,同学昨天打的那个没用。

15. (程序题)

题目编号:Exp02-Enhance04,GJBook3-04-14

题目名称:字母矩阵

题目描述:用循环语句控制打印如下图形,其中输出的每个字母占用2个字符宽度(空格在前,字母在后)。

  

输入:无

输出:如上图字母矩阵

说明:请同学们根据字母、位置的规律实现该程序。打表爽一时,考试两行泪~

 

#include<stdio.h>

int main()

{

int a=1, b, c,n=0;//a行b列c存

char m = 'A';

while (a <= 5)

{

b = 1;

while (b <= 9)

{

printf(" %c", m+n);

b++;

n++;

if (n==9) n=0;

if ((b - 1) != 9) continue;

printf("\n");

n++;

}

a++;

}

while (a > 5 && a <= 11)

{

b = 1;

while (b <= 9)

{

printf(" %c", m + n);

b++;

n++;

if (n == 9) n = 0;

if ((b - 1) != 9) continue;

printf("\n");

n--;

}

a++;



}

return 0;





}

打这个的时候头痛得很,但是状态很好,很顺畅。

明天晚上出03数组,mooc的已经打完了,觉得还得继续精进。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值