C语言博客做业--数据类型

1、PTA实验做业

题目1:7-1 交换a和b的值

1. 本题PTA提交列表

2. 设计思路

1.先定义三个整形变量a,b,t.其中a,b用于储存输入的两个值,t(为了与a,b方便区分用了t做为中间值)则做为中间变量用于a,b间的转换。
2.输入a,b的值
3.将a赋值给t
a赋值给b
t赋值给a
4.最终输出a,bc++

3.代码截图

4.本题调试过程碰到问题及PTA提交列表状况说明

此题我还尝试了其余的方法,我共搜到三种数组

  • 1就是我写的这种(使用中间值)
  • 2使用^为位运算符
  • 3 a=a+b;
    b=a-b;
    a=a-b;使用这个关系,输出

题目2:7-3 倒顺数字串

1. 本题PTA提交列表

2. 设计思路

1.定义整形变量n(做为输入值),i,j(i,j都作为循环结构的条件)
2.输入n的值,
3.分状况讨论(由于在我刚开始提交的过程当中没注意到存在最小值的状况,后来注意到了pta的错误提示,才注意到了最小值存在的状况,因此我就分状况讨论了)学习

  • 1若n大于1,则i在不超出n的范围内自增,且对i进行输出(左半部分);则j从n-1,进行递减,直到j不小于1范围内输出j
  • 2若a=1,则直接输出1设计

    3.代码截图

4.本题调试过程碰到问题及PTA提交列表状况说明

部分正确是由于以前最初没考虑到最小值的存在(下面附图修改过程)

可是仍是没正确,上面一步还多考虑了n=0(多余的)继续。。。
3d

再继续
调试

题目3:7-10 简单计算器

1. 本题PTA提交列表

2. 设计思路

1.定义整形变量a,b分别用于计算中的输入值
2.定义字符变量c,用于储存运算符
3.- 1若输入+,则进行a,b的和运算blog

  • 2若输入-,则进行a,b的差运算
  • 3若输入*,则进行a,b的积运算
  • 4若输入/,则进行a,b的商运算(为/时分母b不能为0,若为0 ,则输出ERROR)
    4.运算结束(即输出等号)输出结果a

3.代码截图

4.本题调试过程碰到问题及PTA提交列表状况说明

看这个样例1+2*10-10/2=,涉及到数字和字符,涉及到运算符优先级等等问题。就再去看了一遍书并在dev c++上修改了屡次,特别是输出ERROR这块很差弄。排序

2、截图本周题目集的PTA最后排名

3、本周学习总结

1.你学会了什么?

1.1 一维数组如何定义、初始化?

定义方式:数组能够用一个初始列表值来初始化,数组能够用一个初始列表值来初始化队列

1.2 一维数组在内存中结构?可画图说明。数组名表示什么?

数组名通常来讲是常量存放在常量区内存

1.3 为何用数组?

使用数组会让程序变的简单,并且避免了定义多个变量的麻烦

1.4 介绍选择法、冒泡法、直接插入排序如何排序?伪代码展现.

include<stdio.h>  

int swap(int a,int b)  
{  
    int t=a;  
    
a=b;  
    
b=t;  
}  

  冒泡排序的原理:每次在无序队列里将相邻两个数依次进行比较,将小数调换到前面, 
  逐次比较,直至将最大的数移到最后。最将剩下的N-1个数继续比较,将次大数移至倒数第二位。 
  依此规律,直至比较结束。 
  冒泡排序的代码以下: 
 
void bubble_sort(int a[], int n){  
    int i,j;  
    for(i=0;i<n-1;++i)  
        for(j=0;j<n-i-1;++j)  
        {  
            if(a[j]>a[j+1])  
                swap(&a[j],&a[j+1]);  
        }  
}  

  选择排序的原理:每次在无序队列中“选择”出最小值,放到有序队列的最后,并从无序队列 
  中去除该值(具体实现略有区别)。 
  选择排序的代码以下: 
 
void selection_sort(int a[],int n){  
    int i,j;  
    int min;  
    for(i=0;i<n;++i)  
    {  
        min=i;  
        for(j=i+1;j<n;++j)  
        {  
            if(a[j]<a[min])  
                min=j;  
        }  
        if(min!=i)  
            swap(&a[min],&a[i]);  
    }  
}  

  插入排序的原理:始终定义第一个元素为有序的,将元素逐个插入到有序排列之中,其特色是要不断的 
  移动数据,空出一个适当的位置,把待插入的元素放到里面去。 
  插入排序的代码以下: 
 
void
insertion_sort(int a[], int n)
{
  int i, j, num;
 
  for (i = 1; i < n; ++i) {
    num = a[i];
    for (j = i - 1; j >= 0 && a[j] > num; --j)
      a[j+1] = a[j];
    a[j+1] = num;
  }
}   

1.5 介绍什么是二分查找法?它和顺序查找法区别?

1.对比顺序查找就是顺序的一个一个的比下去..1和二、1 和三、1和4...1和n2.二分查找就是先和最中间的元素比较 大于此元素时将起始下标设置为此元素下表 继续和右边的中间元素比较,直到查找成功位置 相反小于则和左边的比较(默认数组一从小到大排序完整)

1.6 二维数组如何定义、初始化?

    1.在定义时能够直接赋值来初始化
    2.在定义后能够为其元素一个个来赋值

1.7 矩阵转置怎么实现?方阵中:下三角、上三角、对称矩阵的行标i列标j的关系?请说明。

转置可将i与j的位置对换
下三角:i<=j 。
上三角:i>=j。
对称矩阵:a[i][j]=a[j][i]。

1.8 二维数组通常应用在哪里?

主要用于表示二维表和矩阵

2.本周的内容,你还不会什么?

相关文章
相关标签/搜索