求助:二维数组删除数据后的输出问题
#include <stdio.h>#include "stdlib.h"
#include "time.h"
int main(int argc,char *argv[])
{
int a,i,j,k,t,*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");
}
int d,n=0;
p=(int *)a;//降为一维
printf("请输入需要删除的数:");
scanf("%d",&d);
for(i=0;i<100;i++)
if(d==p)
break;
if(i<100)
{ for(;i<99;i++)
p=p;
n--;
printf("新数组:\n");
for(i=0;i<100;i++)
printf (++n%10 ? "%3d" : "%3d\n",p);
putchar('\n');
}
else printf("无此数!\n");
}
#include <stdio.h>
#include "stdlib.h"
#include "time.h"
int main(int argc,char *argv[]){
int d,n=0;
int a,i,j,k,t,*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");
}
p=(int *)a;//降为一维
printf("请输入需要删除的数:");
scanf("%d",&d);
for(i=0;i<100;i++){
if(d==p){
break;
}
}
if(i<100){
printf("删除下标:%d\n",i);
while(i<99){
p=p; //最大下标是99,假设删除的下标是99,其实不需要操作,因为既然删除了一位,那么所有操作数组都是原来到数组-1
}
printf("新数组: \n");
for(i=0,n=0;i<99;i++){ //因为删除了一位,少循环一轮
printf (++n%10 ? "%3d" : "%3d\n",p);
}
putchar('\n');
}else{
printf("无此数!\n");
}
return 0;
}
页:
[1]