如何忽略C中的一些整数输入

时间:2018-01-26 12:18:36

标签: c

我是解决编程问题的新手,这是我要解决的onlinejudge的一些问题,

问题在于:

你需要总结所有输入

示例input1:

1 -184

示例输出1:

-184

示例input2:

10 439 298 -935 72 636 774 -509 -568 228 47

示例输出2:

482

这是我的代码:

library(dplyr)

# Create example data frame
df <- data.frame(fac = rep(c("A", "B", "C"), 3))

# Create all the combinations of factor
m <- combn(unique(df$fac), m = 2)

# Check the difference between factor level, only keep those differ by 1
# Create a data frame with the right combination
re <- which(as.numeric(m[2, ]) - as.numeric(m[1, ]) != 1)
m2 <- as.data.frame.matrix(m[, -re])

# Filter df by m2
df_final <- lapply(m2, function(col){
  df %>% filter(fac %in% col)
})

df_final
# $V1
#   fac
# 1   A
# 2   B
# 3   A
# 4   B
# 5   A
# 6   B
# 
# $V2
#   fac
# 1   B
# 2   C
# 3   B
# 4   C
# 5   B
# 6   C

我有点迷失在这里,想知道如何忽略那些整数(1,0,10) 我的代码适用于第一个样本,但不适用于另一个样本。

任何解决方案?

2 个答案:

答案 0 :(得分:0)

你有两个选择(其中很多是我确定的)

  • 从输入中读取个别数字(用户类型编号,然后按Enter / return);将字符串转换为数字,如果数字为1,10或0,则跳过它并读取下一个数字。
  • 读取字符串中的所有数字并使用strtok将输入分成不同的数字并将字符串转换为数字,如果数字为1,10或0,则跳过它并读取下一个数字。

看看这个: How to get int from stdio in C?

看看这个(并适应将每个字符串标记转换为int(使用类似strtol的东西): How does strtok() split the string into tokens in C?

答案 1 :(得分:0)

你只需要初始化“sum”变量。它只是完美无缺。

main() {
    int num,sum = 0;//Initalize Here
    char ch;

    while(ch != 10) {
       scanf("%d",&num);
       ch = getchar();

    if(num != 1 || 0 ) {
        sum += num;
        }  
      }
      printf("%d",sum);
      return 0;
    }