/*
总结:如果牵扯到循环,对于局部变量的赋值,需要谨慎,注意循环变量的初始化应放在外层循环内进行赋值
防止循环出错,产生逻辑错误。 */
#include<stdio.h>
int n,nu;
int *num;
void input()
{
int i;
printf("请设定数组的长度:\n");
scanf("%d",&n);
num=(int *)calloc(n,sizeof(int));
i=1;
while(i<=n&&' '!=getchar())
{
scanf("%d",num+i-1);
nu=i;
i++;
}
printf("数组输入完成。\n");
}
void paixu()
{
int *num1;
int t,i;
for(i=0;i<(nu);i++)
{
num1=num;
for(num1;num1<num+nu;num1++)
{
if(*num1<*(num1+1))
{
t=*num1;
*num1=*(num1+1);
*(num1+1)=t;
}
}
}
for(i=0;i<nu;i++)
{
printf("%d\n",*(num+i));
}
}
void charu()
{
int x,i,nu1,message=0,zhengquegeshu;
while(message==0&& zhengquegeshu!=0)
{
if((n-nu)<1)
{
printf("数组没有剩余空间,不可以插入。\n");
message=1;
}
else
{
printf("请输入要插入的数:\n");
zhengquegeshu=scanf("%d",&x);
i=0;
nu1=nu-1;
for(i;i<nu;i++)
{
if(x>=*(num+i))
{
for(nu1;nu1>=i;nu1--)
{
*(num+nu1+1)=*(num+nu1);
}
*(num+i)=x;
break;
}
}
nu++;
i=0;
for(i;i<nu;i++)
{
printf("%d\t",*(num+i));
}
}
}
}
int main(void)
{
input();
paixu();
charu();
return 0;
}
总结:如果牵扯到循环,对于局部变量的赋值,需要谨慎,注意循环变量的初始化应放在外层循环内进行赋值
防止循环出错,产生逻辑错误。 */
#include<stdio.h>
int n,nu;
int *num;
void input()
{
int i;
printf("请设定数组的长度:\n");
scanf("%d",&n);
num=(int *)calloc(n,sizeof(int));
i=1;
while(i<=n&&' '!=getchar())
{
scanf("%d",num+i-1);
nu=i;
i++;
}
printf("数组输入完成。\n");
}
void paixu()
{
int *num1;
int t,i;
for(i=0;i<(nu);i++)
{
num1=num;
for(num1;num1<num+nu;num1++)
{
if(*num1<*(num1+1))
{
t=*num1;
*num1=*(num1+1);
*(num1+1)=t;
}
}
}
for(i=0;i<nu;i++)
{
printf("%d\n",*(num+i));
}
}
void charu()
{
int x,i,nu1,message=0,zhengquegeshu;
while(message==0&& zhengquegeshu!=0)
{
if((n-nu)<1)
{
printf("数组没有剩余空间,不可以插入。\n");
message=1;
}
else
{
printf("请输入要插入的数:\n");
zhengquegeshu=scanf("%d",&x);
i=0;
nu1=nu-1;
for(i;i<nu;i++)
{
if(x>=*(num+i))
{
for(nu1;nu1>=i;nu1--)
{
*(num+nu1+1)=*(num+nu1);
}
*(num+i)=x;
break;
}
}
nu++;
i=0;
for(i;i<nu;i++)
{
printf("%d\t",*(num+i));
}
}
}
}
int main(void)
{
input();
paixu();
charu();
return 0;
}