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++
此题我还尝试了其余的方法,我共搜到三种数组
1.定义整形变量n(做为输入值),i,j(i,j都作为循环结构的条件)
2.输入n的值,
3.分状况讨论(由于在我刚开始提交的过程当中没注意到存在最小值的状况,后来注意到了pta的错误提示,才注意到了最小值存在的状况,因此我就分状况讨论了)学习
2若a=1,则直接输出1设计
部分正确是由于以前最初没考虑到最小值的存在(下面附图修改过程)
可是仍是没正确,上面一步还多考虑了n=0(多余的)继续。。。
3d
再继续
调试
1.定义整形变量a,b分别用于计算中的输入值
2.定义字符变量c,用于储存运算符
3.- 1若输入+,则进行a,b的和运算blog
看这个样例1+2*10-10/2=,涉及到数字和字符,涉及到运算符优先级等等问题。就再去看了一遍书并在dev c++上修改了屡次,特别是输出ERROR这块很差弄。排序
定义方式:数组能够用一个初始列表值来初始化,数组能够用一个初始列表值来初始化队列
数组名通常来讲是常量存放在常量区内存
使用数组会让程序变的简单,并且避免了定义多个变量的麻烦
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.对比顺序查找就是顺序的一个一个的比下去..1和二、1 和三、1和4...1和n2.二分查找就是先和最中间的元素比较 大于此元素时将起始下标设置为此元素下表 继续和右边的中间元素比较,直到查找成功位置 相反小于则和左边的比较(默认数组一从小到大排序完整)
1.在定义时能够直接赋值来初始化
2.在定义后能够为其元素一个个来赋值
转置可将i与j的位置对换
下三角:i<=j 。
上三角:i>=j。
对称矩阵:a[i][j]=a[j][i]。
主要用于表示二维表和矩阵