当前位置:编程学习 > C/C++ >>

C语言怎么调用函数

定义数组,和函数,输入20个数.用数组存储/用函数把数组的正数数字和负数数字分别存储在另外两个数组里.运行的时候它说主函数调用split函数错了.

#include<stdio.h>
int split(int,int,int);
int main()
{
 int i,a[20],positive[20],negative[20];
 for(i=0;i<=19;i++)
 {
  printf("Enter the number:\n");
  scanf("%d",&a[i]);
 }
 split(a[20],positive[20],negative[20]);
 printf("positive\t\tnegative\n");
 for(i=0;i<=19;i++)
 {
  printf("%d\t\t%d\n",positive[i],negative[i]);
 }
}
int split(int a[20],int positive[20],int negative[20])
{
 int i;
 for(i=0;i<=19;i++)
 {
 if(a[i]>=0)
 positive[i]=a[i];
 else
 negative[i]=a[i];
 }
 return  positive[i];
 return  negative[i];
}

追问:那如何让函数分辨存储正负数呢?我这程序分开存储不到正数负数.
答案:#include<stdio.h>

int split(int*,int*,int*);

int main()
{
 int i,a[20],positive[20],negative[20];
 for(i=0;i<=19;i++)
 {
  printf("Enter the number:\n");
  scanf("%d",&a[i]);
 }
 split(a,positive,negative);
 printf("positive\t\tnegative\n");
 for(i=0;i<=19;i++)
 {
  printf("%d\t\t%d\n",positive[i],negative[i]);
 }
}
int split(int a[20],int positive[20],int negative[20])
{
 int i;
 for(i=0;i<=19;i++)
 {
 if(a[i]>=0)
 positive[i]=a[i];
 else
 negative[i]=a[i];
 }
 return  positive[i];
 return  negative[i];
}

 

你再试试

你的代码错了很多,第一点,split函数应该是void    因为你直接对数组的地址进行了操作!

第二点,你的main函数的for循环  没有考虑到数组有些数组元素的值是不可预知的,

第三点,你的数组应该有结束符号'\0'。

int split(int,int,int);这里错了啊,形参不是这样的啊,是这样的啊int split(int a,int b,int c);这样才能调用啊,没有你这样的定义一个外部函数的

上一个:C语言要怎样入门?
下一个:C语言程序[编程]

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,