用c语言写一个判断正负的函数,如果是负数则重新输入,如果是正数就传递出去
时间: 2024-03-26 16:41:56 浏览: 23
好的,以下是一个用 C 语言实现的判断正负的函数,如果是负数则重新输入,如果是正数则传递出去:
```c
#include <stdio.h>
int check_positive() {
int num;
printf("请输入一个数:");
scanf("%d", &num);
if (num < 0) {
printf("输入的数为负数,请重新输入!\n");
return check_positive();
} else {
return num;
}
}
int main() {
int positive_num = check_positive();
printf("输入的正数为:%d\n", positive_num);
return 0;
}
```
该函数中,我们首先通过 `scanf` 函数获取用户输入的数,然后判断该数是否为负数,如果是,则输出提示信息重新输入,通过递归调用 `check_positive` 函数重新获取用户输入;如果是正数,则直接返回该数。在 `main` 函数中,我们调用 `check_positive` 函数获取用户输入的正数,并输出结果。
相关问题
用c语言写需要地址传递一个判断正负的函数,如果是负数则重新输入,如果是正数就用指针传递出去
好的,下面是用 C 语言实现的代码:
```c
#include <stdio.h>
void check_positive(int *num) {
while (*num <= 0) {
printf("请输入一个正数:");
scanf("%d", num);
}
}
int main() {
int num;
printf("请输入一个数:");
scanf("%d", &num);
check_positive(&num);
printf("正数为:%d\n", num);
return 0;
}
```
这个程序中,`check_positive` 函数用指针传递一个整数,并且判断这个整数是否为正数。如果是负数,则会重新要求用户输入;如果是正数,则不做任何操作,直接返回。在 `main` 函数中,我们先读取一个整数,然后调用 `check_positive` 函数,将读取的整数的地址传递给它。最后输出正数即可。
用c语言编写一个程序,输入整数n,再输入n个整数,用自定义函数count记录正数负数和0的个数,输出统计结果
好的,以下是代码:
```c
#include <stdio.h>
void count(int arr[], int n, int* pos, int* neg, int* zero)
{
for (int i = 0; i < n; i++)
{
if (arr[i] > 0)
(*pos)++;
else if (arr[i] < 0)
(*neg)++;
else
(*zero)++;
}
}
int main()
{
int n;
printf("请输入整数n:");
scanf("%d", &n);
int arr[n];
printf("请输入n个整数:");
for (int i = 0; i < n; i++)
scanf("%d", &arr[i]);
int pos = 0, neg = 0, zero = 0;
count(arr, n, &pos, &neg, &zero);
printf("正数个数:%d,负数个数:%d,0的个数:%d\n", pos, neg, zero);
return 0;
}
```
代码解释:
1. 自定义函数count:输入数组arr、数组长度n和三个指向int类型的指针pos、neg、zero,用于记录正数、负数和0的数量。使用for循环遍历数组,根据元素的正负性和是否为0,分别将对应指针所指向的变量加1。
2. 主函数:输入整数n和n个整数,调用count函数统计正数、负数和0的数量,最后输出结果。