如何在C语言中忽略某些整数输入
我对解决编程问题是个新手,这是我想解决的一些在线问题 问题是: 您需要将所有输入相加 示例输入1: 1-184 示例输出1: -184 示例输入2: 10439298-93572636774-509-568228 47 样本输出2: 482 这是我的代码:如何在C语言中忽略某些整数输入,c,C,我对解决编程问题是个新手,这是我想解决的一些在线问题 问题是: 您需要将所有输入相加 示例输入1: 1-184 示例输出1: -184 示例输入2: 10439298-93572636774-509-568228 47 样本输出2: 482 这是我的代码: main() { int num,sum; char ch; while(ch != 10) { scanf("%d",&num); ch = getchar(); if(num != 1 || 0 ) { s
main() {
int num,sum;
char ch;
while(ch != 10) {
scanf("%d",&num);
ch = getchar();
if(num != 1 || 0 ) {
sum += num;
}
}
printf("%d",sum);
return 0;
}
我在这里有点迷茫,不知道如何忽略这些整数(1,0,10)
我的代码对第一个示例有效,但对另一个示例无效
有什么解决办法吗?你有两个选择(我肯定还有很多其他选择)
- 从输入中读取单个数字(用户键入数字,然后按enter/return);将字符串转换为数字,如果数字为1、10或0,则跳过它并读取下一个数字
- 读取字符串中的所有数字,并使用strtok将输入拆分为不同的数字,然后将字符串转换为数字。如果数字为1、10或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;
}
从这两个输入和输出中,我无法理解算法是什么。您想忽略什么?为什么不处理1、0和10?如果代码工作,我只需在开始时初始化三个变量
,如果(num!=1 | 0)
没有做您认为是做的事情-| 0
是一个单独的子句,并且总是false