这个程序有BUG,执行时极可能掘州报告段错误(segmentation fault)。
错误原因在于:指针p没有初始化。判祥蔽
---
如果:char s[] = "123456789", *p, i = 0
改为:char s[] = "123456789", *p = s, i = 0
那么:程序输出结果为:*2*4*6*8*
原因:
当i = 0,2,4,6,8时,if条件i%2 == 0为真,故执行*p=‘*’,即修改数组s的第0,2,4,6,8个元素值为‘*’,亦宴手即将1、3、5、7、9修改为*。
第一题:#include <iostream>
using namespace std
int main() {
int T, m, n
cin>>T
while (T--) {
int sum1 = 0, sum2 = 0
cin >乱简>m >>n
for (int i = mi <= ni++) {
if (i % 2 == 1)
sum1 += i * i * i
else
sum2 += i * i
}
cout <<sum2 <梁冲<"哗渣裤 " <<sum1 <<endl
}
return 0
}
第三题:
#include <iostream>
using namespace std
int main() {
int n
int a = 0, b = 0, c = 0
while (cin >>n &&n != 0) {
double k
for (int i = 1i <= ni++) {
cin >>k
if(k>0) c++
else if(k==0) b++
else a++
}
cout<<a<<" "<<b<<" "<<c<<endl
}
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)