pascal数组的问题比如一个程
建议先用for循环对数组a的所有元素都赋初值0(因为在有的开发环境中,没有自动赋初值0的功能)。程序对n个值不大于1000000的正整数从小到大进行排序,a[i]存储正整数i出现的次数。例如i取50,一开始a[50]赋0,以后每输入一次正整数50,a[50]就在原来的基础上增大1,等到n个正整数输入结束时,a[50]中就是正整数50出现的次数了,如果正整数50一次也没有出现过,那么a[50]仍然为0。 程序倒数第4行和第3行的双重循环用来依次检查数组元素a[1]至a[n],如果数组元素a[i]的值(即正整数i出现的次数)大于0,就打印a[i]次i的值(如果a[i]等于0的话,j循环的循环...全部
建议先用for循环对数组a的所有元素都赋初值0(因为在有的开发环境中,没有自动赋初值0的功能)。程序对n个值不大于1000000的正整数从小到大进行排序,a[i]存储正整数i出现的次数。例如i取50,一开始a[50]赋0,以后每输入一次正整数50,a[50]就在原来的基础上增大1,等到n个正整数输入结束时,a[50]中就是正整数50出现的次数了,如果正整数50一次也没有出现过,那么a[50]仍然为0。
程序倒数第4行和第3行的双重循环用来依次检查数组元素a[1]至a[n],如果数组元素a[i]的值(即正整数i出现的次数)大于0,就打印a[i]次i的值(如果a[i]等于0的话,j循环的循环体一次也不执行,i的值一次也不打印)。
程序改为: [1。。
1000000]oflongint;i,j,n,m:longint;beginfori:=1to1000000doa[i]:=0;readln(n);fori:=1tondobeginreadln(m);a[m]:=a[m]+1end;fori:=1to1000000doforj:=1toa[i]dowriteln(i)end。收起