0)*a; printf(x-6ren">
gpt4 book ai didi

c - scanf() 可防止在条件 block 内出现运行时错误

转载 作者:行者123 更新时间:2023-11-30 17:12:36 25 4
gpt4 key购买 nike

为什么这个程序会运行correctly

s,x="%d";
main(a,t){
for(scanf(x,&t);t--&&scanf(x,&a);)
s+=(a>0)*a;
printf(x,s);
}

这个程序没有,并且给出了 Runtime Error

s,x="%d";
main(a,t){
for(scanf(x,&t);t--;s+=a*(a>0))
scanf(x,&a);
printf(x, s);
}

只有在最后给出 return 0; 时,我的第二个程序才有效。
scanf() 放入条件 block 中使其起作用是什么?

示例输入:

4
5
-5
6
-1

最佳答案

s,x="%d";
main(a,t){
for(scanf(x,&t);t--;s+=a*(a>0))
scanf(x,&a);
printf(x, s);
}

这个不起作用,因为for(scanf(x,&t) ;t--; s+=a*(a>0))

你的停止条件是t--,你将进行无限循环。

关于c - scanf() 可防止在条件 block 内出现运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31429179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com