【发布时间】:2015-04-25 16:29:32
【问题描述】:
早上好,我试图填充一个动态向量,但是当我打印输入数据时,我得到了这样的结果:
input: 1,5,3,4,2
output: 0,1,5,3,4
有人可以帮我吗?我无法修复它。我已经尝试了很多,但无法得到它。我会非常感谢(对不起英语)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_STR 10
int vecto();
char seguir[MAX_STRLEN];
int var;
float* vector;
char* bv;
int vecto(){
int cont=0,ch;
char v[MAX_STR];
printf ("¿number of elements to order?: ");
scanf("%d",&var);
vector = (float*)malloc(var*sizeof(float));
while((ch = fgetc(stdin)) != EOF && ch != '\n' ){};
printf("input number press f for finish \n");
do{
fgets(v,sizeof(v),stdin);
if((strcmp(v,"f")!=0)){
cont++;
vector[cont]=strtod(v,&bv);
}
} while(!((cont==var) || (strcmp(v,"f")==0)));
printf("\n");
return 0;
}
【问题讨论】:
-
我刚刚遇到另一个错误:当我达到我之前指定的元素总数或输入“f”但我无法得到它时,while 循环应该停止。当我输入“f”时,循环一直持续到我
cont==var我将条件更改为这样但仍然不能:while(((cont<var) && (strcmp(v,"f")!=0)));
标签: c arrays sorting vector fill