c de hata?

ermess
21-07-2011, 22:55   |  #1  
OP Üye
Teşekkür Sayısı: 0
57 mesaj
Kayıt Tarihi:Kayıt: Kas 2010

#include
#include
  int main() {
      int sayı,sayıussu;
      printf("sayıyı ve üssünü griniz");
      scanf("%d, %d", &sayı,&sayıussu);
      int sonuc;
      sonuc=us(sayı,sayıussu);
      getch();
      return 0;
      }
girilen sayinin istenilen üssünü alma kodunun  yzmaya calştim hata nerde acaba?
      

      int us(int sayi ,int ussu) {
          int sonuç=1;
          int i;
          for(i=0; i          sonuc*=sayi;
          return (sonuç);
          }

Kapalı Hesap (153535)
22-07-2011, 00:30   |  #2  
Kapalı Hesap
Teşekkür Sayısı: 27
2,297 mesaj
Kayıt Tarihi:Kayıt: Eki 2009

Kod:
#include<iostream>
using namespace std;

int kuvvet(int a,int b)
    {
    if (a==0)
  return    1;
    else
        return  (b*kuvvet(a-1,b));
    }
    int main()
{
    int sayi,us;
    cout<<"bir sayi giriniz"<<endl;
    cin>>sayi;
    cout<<"kacinci kuvveti hesaplansin"<<endl;
    cin>>us;
    cout<<"sonuc "<<kuvvet(us,sayi)<<endl;
 

C++'ta yukarıdaki gibi yapabilirsin.C'de aynısını denedim ama hata verdi.

seandillon
25-07-2011, 08:00   |  #3  
Üye
Teşekkür Sayısı: 0
56 mesaj
Kayıt Tarihi:Kayıt: May 2005

Öncelikle for döngüsünde 0(sıfırdan) başalatamazsın. Çünkü eğer sıfırdan başlatırsan her zaman sonuç sıfır çıkacaktır.  int us(int sayi ,int ussu) {
          int sonuç=1;
          int i;
          for(i=0; i          sonuc*=sayi;
          return (sonuç);
          }

Ayrıca türkçe karakterler de kullanamazsın değişken isimlerini belirtirken... Yukarıda ki arkadaşın yaptığı programcılık mantığına uygun bir şekil olan özyineleme ile yapılmıştır, bir kaç ufak değişiklikle c ye dönüştürebilirsin. Seninki ise şu şekilde olmalı

int us(int sayi ,int ussu) {
int sonuc=1;
          int i;
          for(i=1; i<=ussu;i++) sonuc*=i;
          return (sonuc);
          } 

şeklinde olması gerekiyor...