关于scanf 使用return或者break退出时候读取有残留的问题
想了挺久的,scanf读取不完全的问题,所以使用return的时候要注意是否会对下一次循环有影响,return 和break等同效果在这。
题目:如输入1 2 3 4
5 6 7 8
求输出的 数组里4个元素是多少
#include<iostream>
using namespace std;
int flag=1;
int test(int v[4]){
for(int i=0;i<4;i++){
scanf("%d",&v[i]);
if(i==2&&flag==1) {
flag=0;
return 0;
}
}
return 1;
}
int main(){
int v[4]={0};
int n=2;
while(n--){
test(v);
}
for(int i=0;i<4;i++){
printf("%d ",v[i]);
}
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步