gpt4 book ai didi

c - 如何打印我的 2 个数组具有的相同整数的数量? [C]

转载 作者:行者123 更新时间:2023-11-30 18:15:12 25 4
gpt4 key购买 nike

我需要编写的代码有问题。我必须从命令行获取 14 个参数,并使用它们来制作彩票号码、中奖号码,然后将这 2 个参数相互比较。

例如使用此参数:./a.out 2 30 17 8 6 19 24 7 6 1 2 3 5 4

应该做这样的事情:

Winning numbers: 2 30 17 8 6 19 24
Lottonumbers: 7 6 1 2 3 5 4

2 are the same: 6 2

我的代码几乎按预期工作,但我似乎无法正确打印:2 是相同的。它总是这样循环:1 是相同的:6 2 是相同的:2

数字 2 是比较 2 个数组时找到的相同数字的数量。我的问题是如何打印它,这样它就不会重复文本并且数量正确?即使这么简单,我的头脑似乎也无法工作:/

#include <stdio.h>
#include <stdlib.h>

int main(int args, char **argv)
{
int i;
int winningNumbers[7];
int lottoNumbers[7];
int j;
int a;
int b;
int winningNumber;
int lottoNumber;
int count = 0;

printf("Winning numbers: ");

for (i=0;i<7; i++) {
winningNumber = atoi(argv[i+1]);
winningNumbers[i] = winningNumber;
printf("%d ", winningNumber);
}

printf("\n");
printf("Lotto numbers:: ");

for (j= 8; j < args; j++) {

lottoNumber = atoi(argv[j]);
lottoNumbers[j-8] = lottoNumber;
printf("%d ", lottoNumber);

}
printf("\n");

for(a = 0; a < 7; a++) {

for(b=0; b < 7; b++) {
if (lottoNumbers[a] == winningNumbers[b]) {
count = count + 1;
printf("%d are the same: %d", count, winningNumbers[b]);

}
}
}

return 0;
}

最佳答案

搜索匹配项和显示结果是两个独立的任务。不要尝试同时执行这些操作会更简单、更灵活。

首先搜索匹配项并将它们存储在数组中。然后根据需要显示数组的内容。

int main (int argc, char *argv[])
{
int winningNumbers[7];
int lottoNumbers[7];
int commonNumbers[7];
int count = 0;

// fill winningNumbers
// fill lottoNumbers

// NOTE: the following loop assumes that in both arrays
// no number is repeated.
// You should check that this is indeed the case.
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 7; j++) {
if (lottoNumbers[i] == winningNumbers[j]) {
commonNumbers[count] = lottoNumbers[i];
count++;
}
}
}

printf ("%d are the same:", count);
for (int i = 0; i < count; i++) {
printf (" %d", commonNumbers[i]);
}
printf ("\n");

return 0;
}

许多简单的程序应该遵循这个结构:

  1. 读取并检查输入
  2. 将输入转换为输出
  3. 打印输出

关于c - 如何打印我的 2 个数组具有的相同整数的数量? [C],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39504361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com