এটি দ্বিমিক অনলাইন জাজের ২নং সমস্যার কোড। রং আনসার দেখাচ্ছে কেন বুঝতে পারছি না।

#include<stdio.h>
int main()
{
    int n,i,j,count;
    int x[100];
    int k[100];

    scanf("%d",&n);

    for(i=0;i<n;i++)
    {
        count=0;
        scanf("%d",&j);

        x[i]=j;

        while(j!=0)
        {
            j=j/10;
            count++; //counts the digits
            k[i]=count;
        } 
    }

    for(i=0;i<n;i++)
    {
        if((k[i]<=100&&x[i]%2==0))
        {
            printf("even\n");
        } 
        else if((k[i]<=100&&x[i]!=0))
        {
            printf("odd\n");
        }
    }

    return 0;
}

asked 25 May, 10:42

the%20catalyst's gravatar image

the catalyst
1138

edited 26 May, 05:57

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
1.1k18


বলা হয়েছে যে একটি সংখ্যা 100 ডিজিট পর্যন্ত হতে পারে। অর্থাৎ এই সংখ্যা সি/সি++-এর কোনো ইন্টিগ্রাল ডেটা টাইপে (int, long long int ইত্যাদিতে) রাখা যাবে না। কাজেই একে "%d", &j এভাবে ইনপুট নেওয়া যাবে না।

100 ডিজিট যেহেতু অনেক বড়, তাই এক্ষেত্রে স্ট্রিং ব্যবহার করা যেতে পারে। স্ট্রিং হচ্ছে ক্যারেক্টারের অ্যারে। একটি 102 সাইজের স্ট্রিংয়ে সংখ্যাটি ইনপুট নিয়ে আমরা জোড়-বিজোড় পরীক্ষা করতে পারি। আর কোনো সংখ্যা জোড় কি না, তা সংখ্যার শেষ ডিজিট দেখেই বোঝা যায়। শেষ ডিজিট জোড় হলে পুরো সংখ্যাটি জোড়, অন্যথায় বিজোড়। এই উত্তরে দেওয়া পদ্ধতি অনুসরণ করে ক্যারেক্টারকে ডিজিটে রূপান্তর করা যায়।

scanf("%d", &t);
while(t--) {
    char str[102];
    scanf("%s", str);

    // স্ট্রিংয়ের দৈর্ঘ্য
    int len = 0;
    while(str[len] != '\0')
        ++len;

    // এখন স্ট্রিংয়ের শেষ ক্যারেক্টারটি বের করতে হবে
    char lastDigit = str[len-1]; // n-তম ক্যারেক্টার n-1 ইনডেক্সে থাকে

    // এখন ক্যারেক্টারটিকে ইন্টিজারে রূপান্তর করতে হবে
    int last = lastDigit - 48;

    // এখন জোড়-বিজোড় পরীক্ষা করা যায়
    if (last % 2 == 0) {
        printf("even\n");
    }
    else {
        printf("odd\n");
    }
}

লক্ষ্য করলে দেখা যায় যে কোনো ডিজিট যদি জোড় হয়, তাহলে তার আসকি মানও জোড় (যেমন : 2-এর আসকি 50)। তাই ক্যারেক্টারকে ইন্টিজারে পরিণত করার ধাপটি চাইলে বাদ দেওয়া যায়।

permanent link

answered 26 May, 06:28

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
1.1k18

আমি আসকি সম্পর্কে কিছু জানি না। কোন বই থেকে আসকি সম্পর্কে ধারনা পেতে পারি?

(27 May, 09:37) the catalyst

thank you.

(28 May, 13:56) the catalyst
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×418
×7
×1

question asked: 25 May, 10:42

question was seen: 247 times

last updated: 28 May, 13:56