C语言 要从键盘接收数组的元素个数存放到m,值存放到数组a里去?

Python028

C语言 要从键盘接收数组的元素个数存放到m,值存放到数组a里去?,第1张

要从键盘接收数组的元素个数存放到m,值存放到数组a里去:

int a[100] 定义一个较大长度的数组即可;

printf(“请输入数组a的长度”)

scanf(“%d”,&m)

printf(“请输入数组a的数据元素”)

for(i=0i<mi++)//输入m个元素,存放在a数组中

scanf(“%d”,&a[i])

for(i=0i<mi++)//输出a数组中的值,供检查

printf(“%d”, a[i])

gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。

因为gets函数是以换行符为分隔,所以用一层循环即可读取一个二维数组。对于每行字符串,使用sscanf读取每个数。

例如:

char s[100]

int a[3][3],ifor(i=0i<3i++){

   gets(s)

   sscanf(s,"%d%d%d",s[i],s[i]+1,s[i]+2)

}

你的函数逻辑有问题。return min(b[length-n-1],arboat(b,length-n-1))这句话并不能保证所有数都被判断到。你输入四个数的话,最后一个数不管多大都不会被判断到。只判断前3个。输入超过4的话。有情况是length会等于0.所以逻辑有问题。