0
1

এখানে সেলসিয়াস থেকে ফারেনহাইট, কেলভিনে রূপান্তর করার একটা প্রোগ্রাম লেখা হয়েছে।

#include <stdio.h>
#include <math.h>
int main()
{
    char t;
    float f, f_c, c, c_f, k, f_k, k_f, c_k, k_c;
    printf("Press \"C\" for Celsius \"F\" for Fahrenheit & \"K\" for Kelvin: ");
    scanf("%c", &t);
    if(t!='C' && t!='c' && t!='F' && t!='f' && t!='k' && t!='K'){
        printf("Invalid character!\n\n\n");
    }
    if(t =='c' || t=='C'){
        printf("Celsius: ");
        scanf("%f", &c);
        c_f=((9*c)/5)+32;
        c_k= c+273.15;
        f = c_f;
        k= c_k;
        printf("\nFahrenheit = %f\n\n\n", c);
        printf("\nKelvin = %f\n\n\n", k);
    }
    if (t == 'f' || t=='F'){
        printf("Fahrenheit: ");
        scanf("%f", &f);
        f_k= 5/9(f-32)+273;  //error: called object is not a function or function pointer
        f_c=(5*f-32*5)/9;
        f = f_c;
        k=f_k;
        printf("\nCelsius = %f\n\n", f);
        printf("\nKelvin = %f\n\n\n", k);
    }
    if(t =='k' || t=='K'){
        printf("Kelvin: ");
        scanf("%f", &k);
        k_c= (k-273.15);
        k_f= 9/5(k-273)+32;  //error: called object is not a function or function pointer
        f=k_f;
        c=k_c;
        printf("\nFahrenheit = %f\n\n\n", f);
        printf("\nCelsius = %f\n\n\n", c);
    }
    return 0;
}

বিল্ড মেসেস এরকম দেখায়

|25|error: called object is not a function or function pointer|

|36|error: called object is not a function or function pointer|

এখানে কোডে কী ভুল আছে?

asked 08 Jun, 18:46

Riad_Hasan's gravatar image

Riad_Hasan
325

edited 09 Jun, 18:15


সাধারণত একটা ফাংশনকে আমরা কল করি এভাবে funcName(parameter)। ফাংশনের নাম দিয়ে তার ভেতর ফার্স্ট ব্র্যাকেটে প্যারামিটার দিয়ে দেই। এই প্রোগ্রামে যখন লেখা হচ্ছে 5/9(f-32)+273 তখন 9(f-32) অংশটাকে কম্পাইলার ভাবছে তাকে 9 নামে একটা ফাংশন কল করতে বলা হয়েছে যার প্যারামিটার হচ্ছে f-32। কিন্তু 9 তো আসলে একটি ইন্টিজার, কোন ফাংশন নয়। এজন্যই কম্পাইলার তখন অভিযোগ জানাচ্ছে যে 9 আসলে কোন ফাংশন বা ফাংশন পয়েন্টার নয়। এক্ষেত্রে সঠিক সিনট্যাক্স হবে 5 / 9 * (f - 32) + 273। তাহলে কম্পাইলার বুঝতে পারবে কোন ফাংশন কল নয় বরং গুণ করতে বলা হয়েছে।

permanent link

answered 09 Jun, 18:25

Ashfaqur%20Rahman's gravatar image

Ashfaqur Rahman
7839

edited 10 Jun, 02:04

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
53118

f_k= 5/9(f-32)+273;

লাইনটা

f_k = (5/9) * (f-32) + 273;

এভাবে লিখলেই হবে। একই কথা ৩৬নং লাইনের ক্ষেত্রেও প্রযোজ্য। সাধারণত আমরা (৬)(৭) = ৪২ লিখতে পারলেও প্রোগ্রামিঙের ক্ষেত্রে (৬) * (৭) = ৪২ লিখতে হবে। অর্থাৎ সি-তে শুধু প্যারেনথেসিস দিয়ে গুণ করা যায় না।

প্রোগ্রামটির ১৭, ১৮, ২৭, ২৮, ৩৭, ৩৮ লাইন চারটির প্রয়োজন নেই। সরাসরি k_c, k_f, c_f, c_k, f_c, f_k প্রিন্ট করলেই হয়।

কোডে লাইন নাম্বার উল্লেখের প্রয়োজন নেই। এরর মেসেজটা যে লাইনের তা সেখানে কমেন্ট আকারে দিয়ে দিলেই হয়। উপরের কোডটি চালিয়ে দেখতে হলে নিজে পুরোটা লিখতে হবে বা এক এক করে লাইন নাম্বার সরাতে হবে যা করার মত ধৈর্য বা ইচ্ছা কারো থাকার কথা নয়।

permanent link

answered 09 Jun, 04:52

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
53118

edited 09 Jun, 04:55

ধন্যবাদ, আর লাইন মুছে দিয়েছি।

(09 Jun, 18:18) Riad_Hasan
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:

×394
×90
×3
×1

question asked: 08 Jun, 18:46

question was seen: 199 times

last updated: 10 Jun, 02:04