0

1つの配列を2つの配列に比較する方法を考えていましたが、いくつかのルールがあります。私のコードでは、サイクルを作成するために8桁を入力する必要があります。array = m[3]次に、を2つの異なる配列と比較する必要があります。

最初の配列は(if m[i]%2==0) ...

2番目の配列は(if m[i]%2!=0) ...

したがって、キーボードからメイン配列のこれらの3つの行を入力すると、次のようになり(m[3])ます。

12345678
12345689
12344331

char(string)それらを入力した後、これら2つの異なる配列にを設定する必要があります。ここでは、をinteger使用してチェックを行うか、最後の桁のみをチェックする必要があると思います%(同じように機能します)。したがって、3行を入力した後、次のステップに進みます。

arrA=12345678
arrB=12345689 12344331


#include <iostream>
#include <conio.h>
#include <string>
#include <cstdlib>
#include <stdlib.h>
using namespace std;
int main()
{
    int i,n;
    char m[3];
    for(i=1; i<=3; i++)
    {
        cout<<i<<". Fak nomer: "<<endl;
        do
        {
            cin>>m[i];
            gets(m);
        }
        while (strlen(m)!=7);
        cout<<"As integer: "<<atoi(m);
    }
}
4

3 に答える 3

1

私が理解していることから、あなたは3つの正の整数をと呼ばれる配列に読み込もうとしてmいますが、次のことを確認したいと思います。

  • 3つの数字はすべて8桁です
  • 最初の数字(m[0])は偶数です
  • 2番目の数字(m[1])は奇数です

整数の配列にすることができれば、はるかに簡単になります。その場合m、文字列からintへの変換は必要ありません。コンソールから3つの整数を読み取るには、次を使用します。

// m is now an array of integers
int m[3];
// loops from m[0] to m[2]
for(int i = 0; i < 3; i++)
{
    cout<<i<<": "<<endl;
    do
    {
        cin>>m[i];
    }
    while (!(m[i] >= 1e7 && m[i] < 1e8));
    // m[i] must be greater than or equal to 10000000 and less than 100000000
    //  before continuing
}

m整数の配列を作成することにより、偶数または奇数のチェックが簡単になります。

if (m[0] % 2 == 0)
    cout << "m[0] is even" << endl;
if (m[1] % 2 != 0)
    cout << "m[1] is odd" << endl;
于 2012-11-12T02:35:13.287 に答える
0

私があなたの問題を理解しているかどうかはわかりませんが、なぜただ変更しないのですか

char* m[3]; 

int m[3]; 

おそらくループをやり直したいと思うでしょう

int m[3];    
for(i=0; i<3; i++)
{
    cout<<i+1<<". Fak nomer: "<<endl;

    cin>>m[i]; 

    while (m[i] < 1000000 || m[i] >9999999)
    {
        cout<<"number is less/more than 7 digits. Try again:"<<endl;
        cin>>m[i];
    }

    cout<<"As integer: "<< m[i];
}
于 2012-11-12T02:30:31.170 に答える
0

あなたが達成しようとしていることを正確に理解することは困難です。

私が正しく理解していれば、ユーザーから3つの7文字の入力文字列(整数)を取得し、最初の文字列の各整数を他の2つの文字列の同じ位置の文字と順番に照合しようとしていますか?

#include <iostream>
#include <string>

int main()
{
    std::string m[3];
    for(int i = 0; i < 3; ++i)
    {
        std::cout << i + 1 << ". Fak nomer: "<< std::endl;
        do
        {
            std::cin >> m[i];
        }
        while (m[i].size() != 7);
    }

    // we have enforced each string to be 7 characters long, check each character in turn
    for(int i = 0; i < 7; ++i)
    {
        // get the i'th character of each string, and subtract the ascii '0' character to convert to an integer
        int a1 = m[0][i] - '0';
        int a2 = m[1][i] - '0';
        int a3 = m[2][i] - '0';

        std::cout << "checking " << a1 << " against " << a2 << " and " << a3 << std::endl;

        if (a1 % a2 == 0)
            std::cout << a1 << " % " << a2 << " == 0" << std::endl;

        if (a1 % a3 != 0)
            std::cout << a1 << " % " << a3 << " != 0" << std::endl;
    }

    return 0;
}
于 2012-11-12T02:33:10.477 に答える