我需要编写一个将两个数组进行比较的函数,该函数用于将彩票的号码与中奖号码进行比较,并且它需要为每个匹配的数字返回1,为每个不匹配的数字返回0。我使用两个数组来存储数字,但是我很难正确打印出不匹配的数字,这是我编写的小程序,我无法弄清楚如何为不匹配的元素放置打印0的部分
int main() {
int i,j;
int flag=0;
int a[]={3,49,25,48,12,33};
int b[]={3,48,15,33,12,44};
for( i=0;i<6;i++){
for( j=0;j<6;j++){
if(a[i]==b[j]){
cout<<"1 "<<endl;
break;
}
else flag=1;
}
}
if(flag==1){
cout<<0;
}
return 0;
}
答案 0 :(得分:1)
首先,您需要确定哪个数字数组是“绘图”,哪个是“票证”。更好和更具描述性的命名会有所帮助。
然后,添加对应于“票证”数组的第三个bool
数组,并将所有元素初始化为false
。遍历数字数组时,比较为true
,然后将bool
数组的对应元素设置为true
。
比较之后,bool
数组将为与多个“ draw”匹配的“ ticket”的每个数字包含true
个元素。
免责声明:这只是许多可能解决方案中的一个。可能不是最好的,也可能不是您想要的。
答案 1 :(得分:1)
确定是否要打印0或1,但要在内部循环中打印:
--- toc2/toc2.js 2018-07-06 15:00:27.139881888 -0700
+++ toc2/toc2.js.fixed 2018-07-06 15:00:36.359743263 -0700
@@ -224,7 +224,7 @@
}
function setNotebookWidth(cfg, st) {
- var margin = 20;
+ var margin = 5;
var nb_inner = $('#notebook-container');
var nb_wrap_w = $('#notebook').width();
var sidebar = $('#toc-wrapper');
答案 2 :(得分:0)
这不会是效率更高的 方法,但是我希望以下内容是一个易于理解的解决方案,并且希望它可以作为C ++中一些有用工具的简介。例如std::vector
容器,您应该了解以下内容:
#include <iostream>
#include <vector>
int main() {
std::vector<std::size_t> a={3,49,25,48,12,33};
std::vector<std::size_t> b={3,48,15,33,12,44};
std::size_t size (a.size());
std::vector<std::size_t> count_correct;
for( std::size_t i=0;i<size;i++) {
for( std::size_t j=0;j<size;j++){
if(a[i]==b[j]){
count_correct.push_back(1);
break;
}
}
}
for (std::size_t i(0); i<count_correct.size(); ++i) {
std::cout << "1" << std::endl;
}
std::size_t incorrect_times (size - count_correct.size());
for (std::size_t i(0); i<incorrect_times; ++i) {
std::cout << "0" << std::endl;
}
return 0;
}