c - 为什么我在 IF 中的 break 语句不起作用?
问题描述
这是我的代码,我正在尝试打印给定总和的子数组,为什么如果条件不起作用,则内部的 break 语句,请帮助我解决方案..
#include<stdio.h>
int main(){
int n,s,i,temp=0;
scanf("%d",&n);
scanf("%d",&s);
int a[n];
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){
for(int j=i;j<n;j++){
temp=temp+a[j];
if(temp==s){
printf("%d %d\n",i+1,j+1);
break;
}
}
temp=0;
}
return 0;
}
解决方案
C编程中的break语句有以下两种用法:
它可用于终止语句
case
中的a。switch
如果您使用嵌套循环,break 语句将停止执行最内层循环并开始执行块之后的下一行代码。
在您的情况下,该break
语句只会破坏您的内部循环。看这里:
#include<stdio.h>
int main(){
int n,s,i,temp=0;
scanf("%d",&n);
scanf("%d",&s);
int a[n];
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){
for(int j=i;j<n;j++){ //
temp=temp+a[j]; //
if(temp==s){ //this loop is breaked
printf("%d %d\n",i+1,j+1); //
break; //
}
}
temp=0;
}
return 0;
}
另一个for
循环仍在继续。
推荐阅读
- python - 为什么 PyMySQL 删除查询执行但没有错误地删除记录?
- xamarin.forms - 黑莓与Android OS6.0.1
- c# - 将 html 文件转换为独立的桌面应用程序
- swift - 如何使 JSON 数据持久化以供离线使用(Swift 4)
- angularjs - 在 Django 中,如何使用 angularjs 设置某个请求会话?
- swift - 当我创建一个 segue 以注销时,一个导航控制器突然出现 - Swift
- x86 - 有没有办法确定发生了 SMM 中断?
- spring - 异常连接被拒绝
- c++11 - 具有自定义键类型的 std::unordered_set 允许插入重复键
- java - Android如何限制单个应用实例?