谁帮写几行代码,谢

liumang9527 2008-05-06 10:27:06
怎么将一系列用逗号隔开的数字赋予到一个数组当中。
例如:123.12,123.23,456.12,789.20...一系列数赋予给数组a:array [0..n] of real;

即a[1]=123.12;a[2]=123.23;等等。

这个用C要怎么写?
...全文
132 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gezichong 2008-05-07
  • 打赏
  • 举报
回复
#include <stdlib.h>
#include <stdio.h>

int main() {

char str[] = "123.12,123.23,456.12,789.20";
double* pf = 0;
int num = 1;
int i = 0;
char* t =str;
char* p = str;

while (t = strchr(t, ',')) {
++t;
++num;
}

pf = (double*)malloc(sizeof(double)*num);

num = 0;


t = strtok(str,",");
while(t != NULL){

pf[num++] = atof(t);
t = strtok(NULL,",");
}

for (; i < num; ++i) {
printf("%.4f\n", pf[i]);
}


free(pf);

return 0;
}
fengdream 2008-05-06
  • 打赏
  • 举报
回复
aa
fengdream 2008-05-06
  • 打赏
  • 举报
回复
一般情况下,所有的数据都可以写到文件里,成亿上百亿的数据都可以,所以上述程序很具有兼容性嘿嘿
fengdream 2008-05-06
  • 打赏
  • 举报
回复
int main()
{
FILE *fp;
char c,buf[10];
int n=0, *np,i=0,len;

fp=fopen("a.txt","r");

while((c=fgetc(pf))!=EOF)
{
if(c==',')
n++;
}
rewind(pf);

len=0;
np=malloc(n*sizeof(int));

while((c=fgetc(pf))!=EOF)
{
if(c==',')
{
pf[i++]=atoi(buf);
len=0;
continue;
}
buf[len++]=c;
}
fclose(pf);

for(i=0;i<n;i++)
printf("%d\n", pf[i]);

return 0;
}
星羽 2008-05-06
  • 打赏
  • 举报
回复

#include <stdlib.h>
#include <stdio.h>

int main() {

char str[] = "123.12, 123.23, 456.12, 789.20";
double* pf = 0;
int num = 1;
int i = 0;
char* t = str;
char* p = str;

while (t = strchr(t, ',')) {
++t;
++num;
}

pf = (double*)malloc(sizeof(double) * num);

num = 0;
t = str;
while (t = strchr(t, ',')) {
*t++ = 0;
pf[num++] = atof(p);
p = t;
}
pf[num++] = atof(p);

for (; i < num; ++i) {
printf("%f\n", pf[i]);
}


free(pf);

return 0;
}
chlaws 2008-05-06
  • 打赏
  • 举报
回复
//in.txt
//内容:
//123.12,123.23,456.12,789.20,123.12,123.23,456.12,789.20,
//123.12,123.23,456.12,789.20,123.12,123.23,456.12,789.20,
//123.12,123.23,456.12,789.20,123.12,123.23,456.12,789.20,
//123.12,123.23,456.12,789.20,123.12,123.23,456.12,789.20,
///////////////////////////////////////////////////////////////
//我给你写个从文件读取的

#include<stdio.h>
#include<stdlib.h>
int main()
{
FILE *fp=NULL;
int i=0;
double temp;
double a[100]={0.0};
if( (fp=fopen("in.txt","r+"))==NULL)
{exit(1);}

while(!feof(fp))
{
temp = 0;
fscanf(fp,"%lf",&a[i++]);
fscanf(fp,"%c",&temp);
}
printf("\na[100] is:\n");
for(i = 0; i<100; i++)
{
if(a[i] == 0.0)
break;
printf("%lf\t",a[i]);
}

fclose(fp);
system("PAUSE");
return 0;
}

///////////////////////////////
//结果
/*

a[100] is:
123.120000 123.230000 456.120000 789.200000 123.120000
123.230000 456.120000 789.200000 123.120000 123.230000
456.120000 789.200000 123.120000 123.230000 456.120000
789.200000 123.120000 123.230000 456.120000 789.200000
123.120000 123.230000 456.120000 789.200000 123.120000
123.230000 456.120000 789.200000 123.120000 123.230000
456.120000 789.200000 请按任意键继续. . .
*/
liumang9527 2008-05-06
  • 打赏
  • 举报
回复
怎么定义动态数组及赋值?

动态数组array是C的概念吗?
lunarfan 2008-05-06
  • 打赏
  • 举报
回复
直接从键盘读要不就初始化
linfengc 2008-05-06
  • 打赏
  • 举报
回复
123.12,123.23,456.12,789.20...一系列数
是从什么地方来的?

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧