在C语言中,怎样定义一个函数,使得任意输入一个整数,若为正数,则输出,否则直到得数>0为止

如题所述

第1个回答  2012-04-16
void Positive(int m){
int m,n;
printf("请输入一个整数:\n");
scanf("%d",&m);
if(m>0)
printf("这个整数为:%d",m);
else
Positive(n);
}
主要用了递归的思想,随手写的,应该可以运行,不行的话追问。追问

如果要将这个函数调用到main函数中,使得最终输出这个值,那么在main函数要怎样写

追答

那就把函数改成这样:
void Positive(){
int m;
printf("请输入一个整数:\n");
scanf("%d",&m);
if(m>0)
printf("这个整数为:%d",m);
else
Positive();
}
在main() 中:
main(){
Positive();
..............
}

第2个回答  2012-04-16
#include<stdio.h>
void f(void)
{
printf("输入一个数:");
int n;
while(1)
{
scanf("%d",&n);
if(n>0)
{
printf("%d\n",n);
return;
}
printf("重输!!\n");
}
}
void main()
{
f();
}追问

非常感谢,调试了,是正确的。请问一下,你觉得怎样才能学好C语言

追答

while(1)
{
看书,请教别人,翻资料,敲键盘;
}

本回答被提问者和网友采纳
第3个回答  2012-04-16
#include <stdio.h>

int test()
{
int i;
printf("please input a number:\n");
while(1)
{
scanf("%d", &i);
if(i > 0)
{
printf("this number is :%d\n",i);
return;
}
else
printf("input again:\n");
}

}

int main()
{
test();
}追问

再问一下,怎样将调用函数的值赋给main函数中的参数

追答

我给你举个例子吧。
比如这个
include
int test2(int x,int y) //返回两个数中较大的一个数
{
int a = 0;
if(x>y)
{
a = x;
}
else
a = y;
return a ;
}
int main()
{

int b = 0;
b = test2(1,3); //把函数test2返回的值赋给b
}

第4个回答  2012-04-16
do
{
scanf("%d", &input);
}
while(input <=0);
//输出追问

这个不是自定义的函数吧

追答

你加个函数的框框不就是函数了吗?