C语言如何定义且使用空数组进行传参;

#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是数组的长度.

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网