在带有空格的行中写入一个char数组

  • 本文关键字:一个 数组 char 空格 c
  • 更新时间 :
  • 英文 :


问题是在一行中输入一些n个元素,并用c语言生成一个数组。输入的格式是This。

输入:

15//元件数量

1 4 4 2 3 5 6 x x x x 5 7//元件

我用scanf函数试过了,但没用。

char* tree;
int n;
scanf("%d", &n);
tree = (char*)malloc(sizeof(char) * n);
for (int i = 0; i < n; i++)
{
scanf("%c", &tree[i]);
}

这个代码有什么问题?

一些更好的程序应该是

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n = 0;
int* numbers = NULL;

printf("How many elements do you want to store:");
do {
if(1 != scanf("%d",&n)) {
puts("error in scanf");
n = 0;
}
if(n <= 0)
printf("Enter a positive number:");
}while(n <= 0);

numbers = malloc(n * sizeof (int));

if( numbers == NULL) {
puts("malloc failed");
return 0;
}

printf("n Enter %d number of elements:", n);
for(int i = 0; i<n;i++)
if (1 != scanf("%d", &numbers[i]))
printf("error reading inputn");
printf("n The Entered elements are: ");
for(int i = 0; i < n; i++)    
printf("%d ", numbers[i]);

free(numbers);
numbers = NULL;
return 0;
}

最新更新