C语言,直接输入一串整数,两两用逗号分隔,怎么把它们赋给一个数组

2025-02-13 20:16:16
推荐回答(2个)
回答1:

#include
#include

int main() {
int a[100];
int i = 0;
while(scanf("%d", &a[i++]) != EOF) {//换行后再只能Ctrl+z 如 1,1,2 Enter Ctrl+z
scanf(",");
}
i--;
for(int j = 0; j < i; j++)
printf("%d ", a[j]);
system("pause");
return 0;
}

回答2:

#include
#include
int main()
{
char c;
int num=0 , len=0, i;
int* p;
while((c = getchar()) != '\n'){
if(c>='0' && c<='9'){
num = num*10 + (c-'0');
} else {
if(len == 0){
p = (int*)malloc(sizeof(int)*len++);
} else {
p = (int*)realloc(p, sizeof(int)*(++len));
}
p[len-1] = num;
num = 0;
}
}
if(len == 0){
p = (int*)malloc(sizeof(int)*len++);
} else {
p = (int*)realloc(p, sizeof(int)*(++len));
}
p[len-1] = num;
for(i =0;i printf("%d ", p[i]);
}
return 0;
}