C++大神求解题目!!!!

2025-03-10 09:03:38
推荐回答(4个)
回答1:

C++流输入是可以空格循环分隔各个输入值的。所以代码使用C++流输入处理即可,不过需要对“-1”的输入做出停止的响应。

代码:

/*C++流输入是可以空格循环分隔各个输入值的。所以代码使用C++流输入处理即可,不过需要对“-1”的输入做出停止的响应。

*/

 

#include

using namespace std;

int main() {

         int a=0, b=0, c=0;

         int i /*输入*/, ct=0 /*计数*/;

         do {

                   cin>>i;

                   switch(i) {

                            case 1:

                                     a++;

                                     break;

                            case 2:

                                     b++;

                                     break;

                            case 3:

                                     c++;

                   }

                   ct++;

         } while(i!=-1);

         ct--;

         i='A';

         cout<<"A="<

         if ( b  / (ct * 1.0) > 0.5 ) i+=1;

         else if ( c  / (ct * 1.0) > 0.5 ) i+=2;

         else if ( a  / (ct * 1.0) > 0.5 );

         else i=-1;

         if (i==-1)cout<<"\nall-NO";

         else cout<<"\n"<<(char)(i)<<"-yes";

         return 0;

}

运行效果


回答2:

好多代码,都是高手,不过学习代码最好先学逻辑,毕竟代码哪里都能找的到,想法是自己创新的
这个也就是统计数量,
先定义3个变量,a,b,c存储他们的投票数,将初值赋0
然后用获取数据函数取数字,判断是不是,是给a加1,不是判断是不是2,给b加1,不是判断是不是3,是给c加1,不是表示输入错误,
判断完成后,在一次判断a,b,c是不是大于(a+b+c)/2,是就输出对应的字母加-yes,负责输出all-no

回答3:

回答4:

仿另一位答主,C++代码
#include
using namespace std;

int main() {

int vote, Tot = 0, v[3] = {0}, max = 0, pos;
while (cin >> vote && vote != -1)
if (vote >= 1 && vote <= 3) {
++v[vote - 1];
Tot++;
}
for (int i = 0; i < 3; i++) {
cout.put ('A' + i) << "=" << v[i] << endl;
if (v[i] > max) {
max = v[i];
pos = i;
}
}
cout << "Tot=" << Tot << endl;
if (2 * v[pos] > Tot % 2 ? Tot + 1 : Tot) {
cout.put ('A' + pos) << "-yes";
return 0;
}
else
cout << "all-No";
return 0;
}