指针和数组问题,萌新求教
#include<stdio.h>int main(void)
{
int i,j;
int k,a={0},*p=a;
printf("please input a:\n");
for(i=0;i<15;i++)
{
scanf("%d", &k);
for(j=0;j<i&&k<*(p+j);j++);
if(j<i) for(int b=i; b>j; b--) *(p+b)=*(p+b-1);
*(p+j)=k;
}
printf("%d",a); //为何统一用指针输出会在第一位数前出现空格,而分别用数组和指针输出不会出现这样的问题
for(i=1;i<15;i++)
printf("%3d", *(p+i));
printf("\n"); //输出的时候没有换行呀,而且我把它删了之后对结果没影响,那么这个换行符有什么作用吗?
return 0;
}
问题见备注 第二个问题,你看一下你的for语句管到哪句代码
第一个问题 没看懂 wp231957 发表于 2023-1-4 14:32
第二个问题,你看一下你的for语句管到哪句代码
第一个问题 没看懂
第一个问题就是最后一个for语句i为何不能等于0
sususususu 发表于 2023-1-4 15:25
第一个问题就是最后一个for语句i为何不能等于0
#include<stdio.h>
#define N 5
int main(void)
{
int i,j;
int k,a={0},*p=a;
printf("please input a:\n");
for(i=0;i<N;i++)
{
scanf("%d", &k);
for(j=0;j<i&&k<*(p+j);j++);
if(j<i) for(int b=i; b>j; b--) *(p+b)=*(p+b-1);
*(p+j)=k;
}
//printf("%d",a);
for(i=0;i<N;i++)
{
printf("%d ", *(p+i));
}
printf("\n");
return 0;
}
没啥问题啊
最后一个for 的i 不是不能等于0而是必须等于0
首字符有空格不是和你%3d 限制有关吗
页:
[1]