求助:二维数组插入法排序的输出问题
#include <stdio.h>#include "stdlib.h"
#include "time.h"
int main(int argc,char *argv[])
{
int a,i,j,k,t=0,*p;
printf("排序前:\n");
srand((unsigned)time(NULL));
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
printf("%3d",a=rand()%100);
printf("\n");
}
printf("排序后:\n");
p=(int *)a;//降为一维
for(i=2;i<=100;i++)
{
p=p;
for(j=i-1;p>p;j--)
p=p;
p=p;
}
for(t=i=0;i<100;i++)
printf(++t%10 ? "%3d":"%3d\n",p);
}
先看一下有道怎么说
嗯,我承认这个翻译的确不好,不过应该也可以看出一些东西吧
第 17 行
for(i=2;i<=100;i++)
第 25 行
for(t=i=0;i<100;i++) 人造人 发表于 2018-6-19 19:14
先看一下有道怎么说
什么意思呀? 千杯不醉的关关 发表于 2018-6-19 19:21
什么意思呀?
如果是
int arr;
那么下面两个,哪一个是正确的?
for(int i = 0; i < 100; ++i)
for(int i = 0; i <= 100; ++i)
本帖最后由 Martine 于 2018-6-19 19:48 编辑
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int a,i,j,k,t=0,*p;
printf("排序前:\n");
srand((unsigned)time(NULL));
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
printf("%3d",a=rand()%100);
}
printf("\n");
}
printf("排序后:\n");
p=(int *)a;//降为一维
int key;
for(i=1;i<100;i++)
{
key = p;
j = i-1;
while(j>=0 && p>key)
{
p = p;
j = j-1;
}
p = key;
}
for(t=i=0;i<100;i++)
{
printf(++t%10 ? "%3d":"%3d\n",p);
}
putchar('\n');
} 人造人 发表于 2018-6-19 19:23
如果是
int arr;
应该是i<100
加=号超出范围了对吗 千杯不醉的关关 发表于 2018-6-19 19:55
应该是i
嗯 Martine 发表于 2018-6-19 19:39
感谢!
页:
[1]