#include <stdio.h>
#include <stdlib.h>
#define N 10
double *getPart(double src[ ], int n, double x1, double x2, int *p){
int i,j=0;
double *a,*q;
a=(double*)malloc(sizeof(double)*10);
q=a;
for(i=0;i<n;i++) {
if(src[i]>x1&&src[i]<x2) {
*q=src[i];
q++;
j++;
}
}
*p=j;
return a;
}
int main(){
int m,n,i;
double src[N],x1,x2;
scanf("%d",&n);
for(i=0;i<n;i++) {
scanf("%lf",&src[i]);
}
scanf("%lf %lf",&x1,&x2);
double str[N],*a;
a=&str;
//printf("%.2f",*a);
a=getPart(src,n,x1,x2,m);
for(i=0;i<m;i++) {
printf("%.2lf",str[i]);
}
return 0;
}
c语言编写函数提取数组里双精度的数,用新的数组保存并返回,输出不了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- qzjhjxj 2021-11-28 15:04关注
修改见注释处,供参考:
#include <stdio.h> #include <stdlib.h> #define N 10 double *getPart(double src[],int n, double x1, double x2, int *p){ int i,j=0; double *a,*q; a=(double*)malloc(sizeof(double)*10); q=a; for(i=0;i<n;i++){ if(src[i]>x1 && src[i]<x2){ *q=src[i]; q++; j++; } } *p=j; return a; } int main(){ int m,n,i; double src[N],x1,x2; scanf("%d",&n); for(i=0;i<n;i++){ scanf("%lf",&src[i]); } scanf("%lf %lf",&x1,&x2); double *a; //double str[N],*a; 修改 //a=str; //a=&str; // 修改 //printf("%.2f",*a); a=getPart(src,n,x1,x2,&m); //a=getPart(src,n,x1,x2,m); 修改 for(i=0;i<m;i++){ printf("%.2lf",a[i]); //printf("%.2lf",str[i]); 修改 } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求螺旋焊缝的图像处理
- ¥15 blast算法(相关搜索:数据库)
- ¥15 请问有人会紧聚焦相关的matlab知识嘛?
- ¥15 网络通信安全解决方案
- ¥50 yalmip+Gurobi
- ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
- ¥15 itunes恢复数据最后一步发生错误
- ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
- ¥100 H5网页如何调用微信扫一扫功能?
- ¥15 讲解电路图,付费求解