我正在尝试编写一个带有两个参数并产生两个结果的函数。第一个函数需要将整数与100进行比较,并为文本提供“无效”。这是该代码:
#include <stdio.h>
int main() {
int a,b,c,d;
scanf("%d %d %d %d",&a,&b,&c,&d);
printf("the enter no.: is %d %d %d %d\n",a,b,c,d);
if(a > b && a > c && a > d)
printf("%d is greater\n", a);
else if(b > a && b > c && b > d)
printf("%d is greater\n", b);
else if(c > a && c > b && c > d)
printf("%d is greater\n", c);
else
printf("%d is greater\n", d);
return 0;
}
第二个功能如果需要输入字符/文本,则需要打印“有效”,如果是整数,则不输出任何内容。
compare <- function(x) {
if (!is.numeric(x)) {
result = "invalid"
}
else if (x>100) {
result = "Pass"
}
else if (x<100) {
result = "Fail"
}
else if (x==100) {
result = "Neutral"
}
print(result)
}
我的问题是如何将这两个功能合而为一?我已经尝试了多种方法(未显示),但是似乎没有任何效果。我需要一个函数,例如叫做compare,它具有两个类似的参数:
compare2 <- function(y) {
if (!is.numeric(y)) {
result = "valid"
}
else if (!is.numeric(y)) {
result = ""
}
print(result)
}
我的问题是我不知道如何将两个参数组合成一个功能块。输出应如下所示:
compare <- function(x,y) {....
}
答案 0 :(得分:2)
尝试一下:
compare <- function(x,y) {
if (!is.numeric(x)) {
result = "invalid"
}
else if (x>100) {
result = "Pass"
}
else if (x<100) {
result = "Fail"
}
else if (x==100) {
result = "Neutral"
}
if (!is.numeric(y)) {
paste(result,'valid', sep = ", ", collapse = NULL)
}
else if (!is.numeric(y)) {
paste(result,'', sep = "", collapse = NULL)
}
}
答案 1 :(得分:1)
像这样?尽管我猜期望的输出也可以通过其他方式实现。
compare <- function(x,y) {
result1=vector()
if (!is.numeric(x)) {
result1 <- c(result1,"valid")
}
else if (x>100) {
result1 <- c(result1,"Pass")
}
else if (x<100) {
result1 <- c(result1,"Fail")
}
else if (x==100) {
result1 <- c(result1,"Neutral")
}
if (!is.numeric(y)) {
result1 <- c(result1,"valid")
}
cat(paste(shQuote(result1, type="cmd"), collapse=", "))
}