#include <stdio.h>
int inputarr(int *);
int outputarr(int ,int *);
main()
{
int arr[30];
int s;
s=inputarr(arr);
outputarr(s ,arr);
printf ("\n");
}
int inputarr(int *p)
{
int a;int k=0;
printf("请输入:");
scanf("%d",&a);
while (a>=0)
{
*(p+k)=a;
k++;
scanf("%d",&a);
}
return k;
}
int outputarr(int x,int *t)
{
int i;
for (i=0;i<x;i++)
printf(((i+1)%5==0)?"%4d\n":"%4d",*(t+i));
}
这里的数组arr[30],但比如我不确定这个数组有多少,就是想以输入的个数来定就行了,不知要怎么做?
直接用就可以了。只是数组要预开得足够大。
#include <stdio.h>#include <stdlib.h>
int inputarr(int *);
int outputarr(int ,int *);
main()
{ int arr[100];
int s;
s=inputarr(arr);
outputarr(s,arr);
printf ("\n");
}
int inputarr(int *p)
{ int a,n;
int k=0;
printf("请输入个数:");
scanf("%d",&n);
while (k<n)
{ a=rand()%1000;
*(p+k)=a;
k++;
// scanf("%d",&a);
printf("%4d",a);
}
return k;
}
int outputarr(int x,int *t)
{ int i;
for (i=0; i<x; i++)
printf(((i+1)%5==0)?"%4d\n":"%4d",*(t+i));
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-03-03
#include <stdio.h>int main(void){ //首先, 汉字占两个字节, 最后结束还有一个\0, 所以维度应该是2*8+1=17 char Text[][17] = {"君不见,", "黄河之水天上来。", "奔流到海不复回。"}; //输出函数 void display(char (*)[17]); //输出 display(Text); getchar(); return 0; }void display(char (*p)[17]){ for (int i = 0; i != 3; ++i) printf("%s\n", *(p + i));
第2个回答 2019-03-03
通常的做法是加一个数量的参数,像这样
void foo(int *arr,int n);arr就是数组,n是数组的长度.