王思雨(第二次做业

做业要求连接:https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502html

1、计算机18秋-函数    c++

6-3 数字金字塔 (15 分)

本题要求实现函数输出n行数字金字塔。web

函数接口定义:

void pyramid( int n );

其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注数组

意每一个数字后面跟一个空格。函数

裁判测试程序样例:

#include <stdio.h>

void pyramid( int n );

int main()
{    
    int n;

    scanf("%d", &n);
    pyramid(n);

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

5

输出样例:

1 
   2 2 
  3 3 3 
 4 4 4 4 
5 5 5 5 5 

一、实验代码

1 void pyramid( int n ) 2 { 3   int i,j; 4   for(i=1;i<=n;i++){ 5     for(j=1;j<=n-i;j++){ 6       printf(" "); 7 } 8     for(j=1;j<=i;j++){ 9       printf("%d ",i); 10 } 11     putchar('\n'); 12 } 13 }

二、解题思路学习

(1)文字描述测试

第一步:设置所需变量:i,j,n;spa

第二步:若i=1时,在数字以前须要n-1个空格;若i=2时,在数字以前须要n-2个空格;以此类推,若数字为i时,须要n-i个空格;3d

第三步:当i=1时,输出一个1;当i=2时,输出两个2;以此类推,若数字为i时,须要输出i个i;调试

第四步:每一行以后输入一个“\n”用于分行。

(2)流程图

三、本题调试过程碰到问题及解决办法

(1)问题

输出时没有分行,如图:

 

(2)解决办法

在循环过程最后添加“\n”用于分行。

2、计算机18秋-数组1

7-2 输出数组元素 (15 分)

本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。

输入格式:

输入的第一行给出正整数n(1<n10)。随后一行给出n个整数,其间以空格分隔。

输出格式:

顺次计算后项减前项之差,并按每行三个元素的格式输出结果。数字间空一格,行末不得有多余空格。

输入样例:

10
5 1 7 14 6 36 4 28 50 100

输出样例:

-4 6 7
-8 30 -32
24 22 50

一、实验代码

#include<stdio.h>
int main() { int i, n, cnt = 0; int a[10]; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &a[i]); } for (i = 0; i < n - 1; i++) { a[i] = a[i + 1] - a[i]; } for (i = 0; i < n - 1; i++) { if (i == 0) { printf("%d", a[0]); } else if (cnt == 3) { printf("\n"); printf("%d", a[i]); cnt = 0; } else { printf(" %d", a[i]); } cnt++; } return 0; }

2.解题思路

(1)文字描述

第一步:定义i, n, cnt = 0
第二步:输入n,而后设置for循环输入数组
第三步:利用a[i] = a[i + 1] - a[i]计算后项减前项之差
第四步:每行三个元素的格式cnt == 3,
第五步:cnt循环;
(2)流程图

三、本题调试过程碰到问题及解决办法

 

 3、计算机18秋-数组2

 

7-2 查找整数 (10 分)

 

本题要求从输入的N个整数中查找给定的X。若是找到,输出X的位置(从0开始数);若是没有找到,输出“Not Found”。

输入格式:

输入在第一行中给出两个正整数N(≤20)和X,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。

输出格式:

在一行中输出X的位置,或者“Not Found”。

输入样例1:

5 7
3 5 7 1 9

输出样例1:

2

输入样例2:

5 7
3 5 8 1 9

输出样例2:

Not Found

 

 一、实验代码

1 #include <stdio.h>
 2 
 3 int main() 4 { 5     int n, m; 6     scanf("%d %d", &n, &m); 7     
 8     int a[n], i, k = 1; 9     for(i = 0; i < n; i++) { 10         scanf("%d", &a[i]); 11         if(a[i] == m) { 12             printf("%d", i); 13             k = 0; 14 } 15 } 16     if(k == 1) { 17         printf("Not Found"); 18 } 19     
20     return 0; 21 }

二、解题思路

(1)文字描述

第一步:设置变量:i,k,n,m,设置数组:a[n];

第二步:对数组a[n]进行赋值,包括想要查询的数值;

第三步:运用循环语句,从a[n]中寻找与m相等的数,并设一变量k;若能找到与m想等的数,则k=0,反之,k=1;

第四步:若k=0,输出与m数相等的a[n]中的n,若k=1,输出Not Found

(2)流程图

 三、本题调试过程碰到问题及解决办法

运行出错,仅小部分正确,如图:

(2)解决办法

if语句出错,条件中改成a[i]==m;

 

3、我的总结

 (1)总结这几周你学习哪些内容(不限于课上)?你有哪些收获?

这几周学习了数组;

学习后能用数组简明的写出所需程序

(2)总结这几周所学内容中你以为哪些地方是难点?对此你作了哪些措施去克服这些困难?

1:数组的赋值一开始没有弄明白;

2:函数的声明容易出现错误

3:不懂函数的调用

①:经过翻阅书籍了解数组的定义;

②:经过中国mooc学习

 4、互评和学习进度

杨士琦

王天奇

刘婉容

二、学习进度

 

(1)表格

 

 (2)折线图

相关文章
相关标签/搜索