[问题] C++简单的阵列题目

楼主: WuluJason (五路皆神)   2018-05-22 12:58:09
开发平台(Platform): (Ex: Win10, Linux, ...)
win 10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
Dev C++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
我是高中生,因为兴趣所以自学程式语言C++,配合学校的资讯课练习code,这次的作业是
输入0-9的20个整数并计算各有几个 初步的想法自己觉得有点笨拙...
我的想法如下
(抱歉这用手机打的 晚点用电脑编辑
这看起来是有点笨拙的写法 但请求指正或是更好的写法
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
#include <iostream>
using namespace std;
int main() {
int i , a[20];
cout<<"请输入20个0-9的数字:;
int b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;
for ( i=0 ; i<20 ; i++) {
cin>>a[i];
if (a[i]==1) b++;
if (a[i]==2) c++;
if (a[i]==3) d++;
if (a[i]==4) e++;
if (a[i]==5) f++;
if (a[i]==6) g++;
if (a[i]==7) h++;
if (a[i]==8) j++;
if (a[i]==9) k++;
if (a[i]==0) l++;
}
cout<<"1:"<<b<<"\t";
cout<<"2:"<<c<<"\t";
cout<<"3:"<<d<<"\t";
cout<<"4:"<<e<<"\t";
cout<<"5:"<<f<<"\t";
cout<<"6:"<<g<<"\t";
cout<<"7:"<<h<<"\t";
cout<<"8:"<<j<<"\t";
cout<<"9:"<<k<<"\t";
cout<<"0:"<<l<<"\t";
return 0;
}
作者: jerryh001   2018-05-22 13:03:00
1.变量命名要有规则 2.把"数有几个"的变量做成阵列 3.重复的部分用循环做
作者: longlongint (华哥尔)   2018-05-22 13:05:00
count[a[i]]++
作者: bluesoul (忙死你老爸)   2018-05-22 13:06:00
记得先检查输入是否介于零到九
作者: achicn3 (Sher)   2018-05-22 15:13:00
Counting sort
作者: Royne (哲哉)   2018-05-22 18:03:00
矩阵a[10]初始值为0 每次cin>>i a[i]++
作者: remember (人老也有天使收)   2018-05-23 20:03:00
STL 的 map XD
作者: bhbbbbb (影)   2018-05-24 16:57:00
应该再多令一个array放你的abcdefg,你的一大串if还有最后输出用for循环跑就ok了for(int j = 0 ; j < 10 ; j++) if(a[i] == j) b[j] ++ ;类似这样,array记得先全部初始化成0

Links booklink

Contact Us: admin [ a t ] ucptt.com