主题:一个小程序请帮忙看下
engine01
[专家分:10] 发布于 2008-02-01 10:46:00
输入这几个数:32,64,53,87,54,32,98,56,98,83。程序如下:
#include <iostream>
using namespace std;
void main()
{
int a,b,c,x;
a=b=c=0;
for(int k=0;k<10;k++)
{cin>>x;
switch(x%3)
{
case 0:
a+=x;break;
case 1:
b+=x;break;
case 2:
c+=x;break;
}
}
cout<<a<<","<<b<<","<<c<<endl;
sysem("pause");
}
请问该程序的结果是什么?k没有别的作用就是往下读数把?请帮我分析下该程序。看得不太清楚
回复列表 (共5个回复)
沙发
liuhenwang [专家分:80] 发布于 2008-02-01 22:54:00
输入这几个数:32,64,53,87,54,32,98,56,98,83。程序如下:
#include <iostream>
using namespace std;
void main()
{
int a,b,c,x;
a=b=c=0;
for(int k=0;k<10;k++)
{cin>>x;
switch(x%3)
{
case 0:
a+=x;break;
case 1:
b+=x;break;
case 2:
c+=x;break;
}
}
cout<<a<<","<<b<<","<<c<<endl;
sysem("pause");
}
请问该程序的结果是什么?k没有别的作用就是往下读数把?请帮我分析下该程序。看得不太清楚
----------------------------------------------------------------------------
程序的功能是根据输入的X值,以X摸3的结果实现分支统计,余数为0,1,2的数值分别统计到变量a,b,c中,最后输出结果
你要结果的话,到VC或BC上运行一下不就得了,又不是在考你的笔试
K的作用就是循环记数
板凳
engine01 [专家分:10] 发布于 2008-02-01 23:42:00
谢谢大哥,我不是只要结果,我希望要的大家帮我分析下程序,然后得出结论![em2]
3 楼
luoliang_870116 [专家分:60] 发布于 2008-02-10 22:01:00
141,64,452.
输入32,a.b.c结果0,0,32(因为32求于3结果2,选择CASE 2的,于是a,b都没有变0,c为32);输入64(因为64求于3结果1,选择CASE 1的,于是a,c都没有变0,b为64);输入53(因为53求于3结果2,选择CASE 2的,于是a=0,b=64(上面一个流下的),c为85(32+53);依次往下咯!
4 楼
luoliang_870116 [专家分:60] 发布于 2008-02-10 22:15:00
表如下:
x a b c %
32 0 ,0 ,32 ------2
64 0 ,64 ,32 ------1
53 0 ,64 ,85 ------2
87 87 ,64 ,85 ------0
54 141 ,64 ,85 ------0
32 141 ,64 ,117 ------2
98 141 ,64 ,215 ------2
56 141 ,64 ,271 ------2
98 141 ,64 ,369 ------2
83 141 ,64 ,452 ------2
5 楼
benclee [专家分:40] 发布于 2008-02-15 19:14:00
k 只是一个循环控制变量.用来限定输入数的个数.
我来回复