标签:根据 相等 位数组 pre -- 表情 思想 row 技术
定义变量row,bit,number;
定义字符型变量r,p;
输入number
取出后两位数bit=number%100;
取出前两位数row=number/100
r=row+160;b=bit+160;
putchar(r);putchar(b);输出
本题思路清晰,PTA提交一遍就过,并没有调试问题。
定义变量n,i,j;
输入n;
for i=0 to n/2
for j=1 to n-1-2*i 输出空格 end
for j=1 to 1+2*i 输出*加空格 end
换行 end
for i=1 to n/2
for j=1 to 2*i 输出空格 end
for j=1 to n-2*i 输出*加空格 end
换行 end
提交到PTA时提示格式错误,运行结果如下图,并没有发现什么问题;
根据经验,格式错误可能是空格的输出有些问题,于是把空格换成#号输出,结果如下图
发现第一列有空格,而题目是没有的,发现问题后改变相应的j起始值,消掉第一列的空格。
main函数:
定义变量number1,number2,sum,字符型变量op
输入number1,并赋值给sum
while op不等于=
输入number2
if number2 == 0 && op == ‘/‘
输出ERROR,结束程序
if op为四则运算符
如果是,调用函数operation,并赋值给number1
否则,输出ERROR,结束程序
end
输出sum
operation函数:
定义变量sum
switch(op)
op是+,sum = number1 + number2; break;
op是-,sum = number1 - number2; break;
op是,sum = number1 number2; break;
op是/,sum = number1 / number2; break;
返回sum的值
提交前两次提示编译错误,随即就想到我scanf写成了scanf_s,因为那时我是用VS写这题的,不知道为什么VS提示我要用scanf_s输入;再次提交,结果如下图
于是我就一个一个调,当只输一个操作数时输出为0,于是我就把第一个操作数赋给sum,这样就解决了这个问题;分母为0时,输出ERROR后,只是通过break跳出了循环,还是会继续输出sum的值,于是把break换成return 0,直接结束循环,非法字符也是同样的问题。
一位数组定义的一般形式为:类型名 数组名 [数组长度];
初始化:类型名 数组名 [数组长度]={初值表};初值表依次放数组的初值;初始化也可针对部分元素;静态数组如果没有初始化,系统会自动赋0。
数组名表示该数组所分配连续内存空间中第一个单元的地址,即首地址。
在程序中使用数组,可以让一批相同类型的变量使用同一个数组变量名,用下标来相互区分,表达简洁,可读性好,便于使用循环结构。
1.选择法:
定义变量i,index,k,n,temp;
输入n,定义数组a[n],利用循环输入n个值,依次赋给数组a的每个元素
for k=0 to k<n-1
index=k;/存放最小值下标/
for i=k+1 to n
if a[i]小于a[index]
如果是,则index=i end
temp=a[index];a[index]=a[k],a[k]=temp最小元素与下标为k的元素互换 end
输出n个数组元素的值
2.冒泡法:
定义变量i,j,k,n
输入n,定义数组a[n],利用循环输入n个值,依次赋给数组a的每个元素
for i=0 to n-1
for j=0 to n-i-1
if a[j]大于a[j+1]
互换a[j]和a[j+1]
end
输出n个数组元素的值
3.直接插入排序
定义变量i,j,k,n,temp
输入n,定义数组a[n],利用循环输入n个值,依次赋给数组a的每个元素
for i=1 to n-1
for j=0 to i-1
if a[j]大于a[i] 跳出循环 end
if j不等于i-1
temp=a[i]//将比a[i]大的数据向后移
for k=j to i-1
a[k+1]=a[k] end
a[k+1]=temp//将a[i]放到正确位置上
end
输出n个数组元素的值
二分查找的基本思想是将n个元素分成大致相等的两部分,取a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x<a[n/2],则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x.
区别:二分查找法只适用于有序的一组数,在查找时是折半查找;而顺序查找法也适用与无序的数组,把要查的的数和这一组数一个一个比较,从而查出所在位置。
定义:类型名 数组名 [行长度] [列长度]
初始化:类型名 数组名 [行长度] [列长度]={ {初值表0},···,{初值表k},···},也可顺序赋值;二维数组初始化也可针对部分元素
通过循环让矩阵的行列互换,交换a[i][j]和a[j][i];
下三角:i<=j 上三角:i>=j 对称矩阵:a[i][j]=a[j][i]
主要运用于表示二维表和矩阵等具有行和列的表示形式
这题我做的时候都看不懂到底是用来实现什么的,所以做错了,后来才发现原来是进制转换;
这题是因为太粗心大意了,都没看到C选项就选了D
标签:根据 相等 位数组 pre -- 表情 思想 row 技术
原文地址:http://www.cnblogs.com/yanweijie666/p/7892692.html