复杂类型作函数参数之数组的输入与输出
时间: 1ms 内存:128M
描述:
数组的输入与输出。编写程序,通过函数给数组输入若干不小于0的整数,用负数作为输入结束标志,通过另一函数输出该数组中的数据。
#include <stdio.h>
#define M 100 /* M表示元素个数不超过100 */
void array_out(int *, int); /* 函数原型,输出元素个数 */
int array_in(int *); /* 函数原型,输入元素 */
int main( )
{
int s[M], k ; /* 定义数组s,元素个数不超过100 */
k = array_in( s ); /* 调用array_in函数给数组s 赋值 */
array_out (s, k); /* 调用array_out函数输出数组s 的各元素值 */
return 0;
}//请编写array_in 和 array_out函数,只提交你编写的函数,注意输出的格式,5个换一行,每个输出占用4个字符
输入:
输入任意数目的数字(数字保证小于等于100),以负数结束输入。
输出:
输出数组的内容。
示例输入:
3 2 1 5 4 8 -1
示例输出:
3 2 1 5 4
8
提示:
参考答案(内存最优[1092]):
#include <stdio.h>
#define M 100 /* M表示元素个数不超过100 */
void array_out(int *, int); /* 函数原型,输出元素个数 */
int array_in(int *); /* 函数原型,输入元素 */
int main( )
{
int s[M], k ; /* 定义数组s,元素个数不超过100 */
k = array_in( s ); /* 调用array_in函数给数组s 赋值 */
array_out (s, k); /* 调用array_out函数输出数组s 的各元素值 */
return 0;
}
int array_in(int a[])
{
int n;
int i=0;
while(1)
{
scanf("%d",&a[i]);
if(a[i]<0)
{
i--;
break;
}
else
i++;
}
return i;
}
void array_out(int *a,int n)
{
int i;
for(i=0;i<=n;i++)
{
if((i)%5 == 0 && i!=0)
printf("\n");
printf("%4d",a[i]);
}
return ;
}
参考答案(时间最优[0]):
#include <stdio.h>
#define M 100 /* M表示元素个数不超过100 */
void array_out(int *, int); /* 函数原型,输出元素个数 */
int array_in(int *); /* 函数原型,输入元素 */
int main( )
{
int s[M], k ; /* 定义数组s,元素个数不超过100 */
k = array_in( s ); /* 调用array_in函数给数组s 赋值 */
array_out (s, k); /* 调用array_out函数输出数组s 的各元素值 */
return 0;
}
int array_in ( int *a ) /* 函数给数组s 赋值,并统计元素个数 */
{
int i = 0, x;
scanf( "%d", &x );
while( x >= 0 ) /* 输入数组s 各元素值,负数为结束标志 */
{
*(a+i) = x; /* 将输入的值送入数组s 各元素中 */
i++;
scanf( "%d", &x );
}
return i; /* 返回数组s 元素的个数 */
}
void array_out ( int *a, int n ) /* 函数输出数组s各元素值 */
{
int i;
for ( i = 0; i < n; i++ )
printf ( ( ( i +1 ) %5 == 0 )? "%4d\n": "%4d", *(a+i));
printf ( "\n" );
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。