C语言编程中输入输出的困惑

来源:百度知道 编辑:UC知道 时间:2024/05/07 22:51:22
题目是输入一行数字 然后输出 第一个数字是用来说明后面有几个数字的,必须为整型。后面输入的通过开辟空间建立数组。然后输出结果:
#include<stdlib.h>
#include<stdio.h>
main()
{
int i;
int n;
int *x;
/*输入*/
scanf("%d",&n);
x=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;i++)
scanf("%d",x+i);
/*输出*/
printf("%d ",n);
for(i=0;i<n;i++)
printf("%d ",*(x+i));

getch();
free(x);
}

改成如下的双精度浮点型就不行,无法得到正确结果:

#include<stdlib.h>
#include<stdio.h>
main()
{
int i,n;
double *x;
scanf("%d",&n);
x=(double*)malloc(sizeof(double)*n);
for(i=0;i<n;i++)
scanf("%lf",x+i);
for(i=0;i<n;i++)
printf("lf ",*(x+i));
getch();
free(x);
}
是的 输出的时候整型输出就可以 改成浮点或双精度浮点输出就不行

#include<stdlib.h>
#include<stdio.h>
main()
{
int i,n;
double *x;
scanf("%d",&n);
x=(double*)malloc(sizeof(double)*n);
for(i=0;i<n;i++)
scanf("%lf",x+i);
for(i=0;i<n;i++)
printf("%lf ",*(x+i)); //这里的问题吗?
getch();
free(x);
}