问题是在一行中输入一些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;
}