#include<stdio.h>
    float simple(float p, float r, float t);
    int main()
    {
        float p,r,t,s;
        printf("Enter principal rate and time: ");
        scanf("%f%f%f",&p,&r,&t);
        s=simple(p,r,t);
         printf("simple interest=%.2f",s);
    }
    float simple(float p, float r, float t)
    {
        float si;
        si=(p*r*t)/100;
       return (si);
    }

এই প্রোগ্রাম এ main() এর আগে float টা initialize করতে হয়েছে

কিন্তু নিচের প্রোগ্রাম এ প্রথমে initialize না করলে ও চলে ।

এমন কেন? একটু ব্যাখ্যা করবেন pls

#include<stdio.h>
int main()
{
    int a=10,b=20,x;
    swap(a,b);
    printf("a=%d b=%d\n",a,b);
    return 0;
}
int swap(int a, int b)
{
    int t;
    t=a;
    a=b;
    b=t;
    printf("x=%d y=%d\n",a,b);
}

asked 16 Oct '16, 16:33

Rejwan's gravatar image

Rejwan
1059

retagged 16 Oct '16, 17:52

menon's gravatar image

menon
4.7k742

আপনার নিচের কোড সব কম্পাইলারে রান হবে না ।

(16 Oct '16, 17:54) menon

সবসময় মনে রাখবেন C তে যখনি আপনি নিজে ফাংশান লিখে ব্যবহার করবেন তখনিঃ

১) হয় main() -ফাংশানের আগেই তার প্রোটোটাইপ লিখে পরে main() -ফাংশানের পরে তার বর্ণনা লিখতে হবে (আপনার প্রথম প্রোগ্রামের মত), অথবা

২) main() -এর আগেই তার বিস্তারিত লিখতে হবে। আপনার দ্বিতীয় প্রোগ্রামের swap() -ফাংশানটা main() -এর আগে লিখলে সেটা সঠিক হত। আপনি লিখেছেন এটা কাজ করে, কিন্তু এটা মোটেই করার কথা নয়। যাই হোক এভাবে লেখা ভুল।

permanent link

answered 16 Oct '16, 21:23

Najat's gravatar image

Najat
5398

edited 17 Oct '16, 07:14

1

ধন্যবাদ আপনাকে। আমিও ভেবেছিলাম আমার দ্বিতীয় প্রোগ্রাম টা কাজ করার কথা না কিন্তু কাজ করেছে। যাই হোক এখন থেকে তাহলে prototype declare করে কাজ করব।

(17 Oct '16, 04:13) Rejwan

আপনি যদি main() এর পরে কোন ফাংশন লিখেন তবে main() এর আগে অবশই সেই ফাংশনের prototype যেমন, আপনার simple ফাংশনের ক্ষেত্রে float simple(float p, float r, float t); লিখতে হবে । যদি ৩ টা ফাংশন থাকে তবে ৩ টার ই prototype লিখতে হবে অর্থাৎ যে কয়টা ফাংশন লিখবে সবগুলির prototype লিখতে হবে ।

আর main() আগে আপনি যে কয়টা ফাংশনই লিখনে না কেন তার জন্য কোন prototype লিখতে হবে না ।

ধন্যবাদ ।

permanent link

answered 16 Oct '16, 17:49

menon's gravatar image

menon
4.7k742

ধন্যবাদ বুঝানোর জন্য।

(17 Oct '16, 04:15) Rejwan

আমরা জানি প্রতিটা প্রোগ্রামই main() থেকে কাজ করা শুরু করে। এখানের প্রোগ্রামটি যখন কম্পাইলার main() থেকে এক্সিকিউট করা শুরু করবে তখন এক্সময় simple() টা পাবে। তখন দেখবে কোথায় এই simple() টা আছে। তখন দেখবে যে উপরে simple() টা আছে । কিন্তু যদি ও এটাতে ফাংশনের প্রোটোটাইপ ডিক্লেয়ার করা আছে কিন্তু এখানে এই ফাংশনের কোনো ডেফিনিশন দেয়া নেই অর্থাৎ এখানে ফাংশনটিকে কিছুই করতে বলা হয় নি। তাহলে তো সে কিছুই প্রিন্ট করতে পারবে না। কিন্তু যখন main() ফাংশনের পরেই দেখবে simple() টির প্রোটোটাইপ ডিক্লেয়ার করা হয়েছে এবং ডেফিনিশন ও আছে তখন কম্পাইলার এখান থেকে কাজ শেষ করে রিটার্ন করবে। ধন্যবাদ। সম্ভবত আপনি আপনার প্রশ্নের আন্সার পেয়েছেন।

permanent link

answered 16 Oct '16, 18:23

Faria%20Sulatna's gravatar image

Faria Sulatna
111

ধন্যবাদ আপনাকে। বুঝতে পেরেছি।

(17 Oct '16, 04:14) Rejwan
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:

×416
×33
×1
×1

question asked: 16 Oct '16, 16:33

question was seen: 1,333 times

last updated: 17 Oct '16, 07:14