在C编程中,调用函数可以用一个循环返回多个值吗?

来源:百度知道 编辑:UC知道 时间:2024/06/02 01:34:52
#include<stdio.h>
#include"stdlib.h"
#define MaxStackSize 100
typedef int DataType;//定义int为DataType抽象数据类型
#include"SeqStack.h"//包括"SeqStack.h"头文件
int input(int a[]);
void main()
{

DataType b[100],j;

SeqStack myStack;//将myStack定义为SeqStack的类型,即DataType
StackInitiate(&myStack);// 初始化

if(StackPush(&myStack,input(b))==0)//压栈
{
printf("错误!\n");
return;
}
while(StackNotEmpty(myStack))//依次出栈数据元素序列
{
StackPop(&myStack,&j);
printf("%d\n",j);
}

}

int input(int a[])//此函数主要是求出转换二进制的倒序列
{int c,b,n,d,i;

printf("请输入转换的十进制数:");
scanf("%d",&c);
i=0;
while( c !=0)
{
d=c;
c=c/2;
b=d%2;
printf("%d",b);

a[i]=b;
i++;
}

printf("\n");
for(n=0;n<i;n++)//问题就是这里,可

想返回多个值的话
可以考虑用指针阿

int* fun(){
int *a=new int[10];
xxx
xxx

return a;
}
即返回一个指向int型数组的指针

用完记得delete

当然是可以的, 想想看运行的过程是什么样:

n=0, 并且确认n<i,然后进入运行 return a[i] 然后呢,return的结果当然就是退出这个函数, 返回值就是a[i]

这跟你想像的结果不一样么?因为你没有真的在意语句的含义, 你按自己的意愿来琢磨这个语句, 而不是按照语句的意义来适当的安排它

不论是什么函数 都只能返回一个值 就是一个return有效
要想返回多值 就得用指针来完成

想让函数有多个返回值就得用指针,用一个return不可能返回多个……