回 帖 发 新 帖 刷新版面

主题:一个小程序请帮忙看下

输入这几个数: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个回复)

沙发

输入这几个数: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的作用就是循环记数

板凳

谢谢大哥,我不是只要结果,我希望要的大家帮我分析下程序,然后得出结论![em2]

3 楼

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 楼

表如下:
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 楼

k 只是一个循环控制变量.用来限定输入数的个数.

我来回复

您尚未登录,请登录后再回复。点此登录或注册