Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4171
Cevap
168274
Tıklama
3
Öne Çıkarma
Cevap: C/C++/C# Sorularınız Buraya. . .(GÜNCEL) (161. sayfa)
D
11 yıl
Yüzbaşı

C dilinde float tipinde bir sonuç elde ettiğim zaman küsuratını 00000 olarak gösteriyor bunu nasıl düzeltebilirim?

Örneğin;
Bir üçgen alan hesaplama formülü yazdım diyelim.
Formül: a * h / 2

a = 7, h = 3

7*3 = 21 /2 = 10,5 çıkması gerekirken 10.00000 gibi birşey çıkıyor. İstediğim 10,5 çıkması.


Bu mesaja 1 cevap geldi.
E
11 yıl
Teğmen

float a = 7, h = 3;
printf("%f",(a*h)/2);

ya da

int a = 7 , h = 3;
printf("%f",float((a*h)/2)); // işlemi float() fonksiyonuyla floata dönüştürüyorum.

ya da

int a = 7, h = 3;
printf("%f",1.0*(a*h)/2); // 1.0 ' la çarpıyorum; 1.0 zaten 1 e eşit olduğu için sonucu değiştirmiyor ama float sayıya dönüştürüyor.


yani ya değişkenlerinin float olması lazım, ya da onları 2. ve 3. örnekteki gibi floata dönüştürmen lazım. örnekler çoğaltılabilir benim aklıma bunlar geldi.




Bu mesajda bahsedilenler: @Devotion
E
11 yıl
Teğmen

quote:

Orijinalden alıntı: T-Skipper

FİBONACCİ SAYISINI VEREN KOD C DİLİNDE.FOR DÖNGÜSÜNÜN İÇİNDE BİR HATA VAR GALİBA ÇÖZEMEDİM YARDIMCI OLUR MUSUNUZ


/*
TASK 2 : Write a main program to compute the Fibonacci number.
*/

#include<stdio.h>

int main(){

int x,x0=0,x1=1,sum,counter,intervalvalue;

printf("Please enter an integer:");
scanf("%d",&x);

if(x==0)
printf("Fib(0)=0.\n");

if(x==1)
printf("Fib(1)=1.\n");

if(x>1){
for(counter=0;counter<x;++counter){
intervalvalue=x0+x1;
x0=x1;
x1=intervalvalue;
sum=x0+x1;}

printf("Fib(%d)=%d.",x,sum);}

getch();
return 0;
}



















































































Hocam o kadar uzatmana gerek yok aslında çok daha az kod yazarak işini halledebilirsin.


Sorunlara gelince:
#include<conio.h> yok,
0. değeri hesaplamana gerek yok. Çünkü 0. sayı diye birşey yok. Sayma sayıları 1 den başlar.
Bunları düzelttikten sonra hala sorun yaşarsan kodunu tekrar paylaş bakalım.


Bu mesaja 1 cevap geldi.
C
11 yıl
Yüzbaşı

Bugün sınav olduk ve bu soruları pek anlamadım , aslında yaptım birşeyler ama doğrumu değilmi bilmiyorum.
Mesela , x= 2 döndüğü zaman ne olacak ,continue diyip , x i 3 mü alacak ve printfde * basacakmı ?
Eğer x= 3 olacaksa break olduğunda * basmadan alttaki if(i%3==0) continue yemi geçecek? if(i%3==0) continuede i=3 ise + basmadan döngünün enbaşınamı dönecek?
< Resime gitmek için tıklayın >

Birde şöyle soru vardı.Bunuda anlamadım ne biçim soru bu, bu iki soru kafamı çok karıştırdı , şimdiden teşekkür ederim :)

< Resime gitmek için tıklayın >





< Bu mesaj bu kişi tarafından değiştirildi cezaalp -- 13 Kasım 2014; 20:56:22 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @~H!ddeN , @hotchner12 , @lavara123
W
11 yıl
Yarbay

arkadaşlar üniye bu sene gidemedim seneye başlayacağımda c öğrenmek istiyorum visual studio tarzı komutları hazır veren ve kolay yazıp öğrenmemizi sağlayan bir program sölermisiniz c dilini çalışmam için



T
11 yıl
Onbaşı

o ödev bitti artık hocam ama yeni ödev de sorun yaşıyorum 2 gündür hala kodu yazamadım . kendimiz belirleyeceğimiz sayıda madeni para atıcaz örn(100) ve kaç yazı kaç tura geleceğini ekrana yazdıracaz(buna bilg karar verecek örn 45 tura 55 yazı)) random yani
#include<stdlib.h>
#include<stdio.h>

int main(){

int i;
unsigned toss;

printf("Enter the number of coin toss = ");
scanf("%u",&toss);
srand(toss);

for(i=1;i<=10;i++){
toss=(1+(rand()%2));
if(toss==x)
x+=1;
if(toss==y)
y+=1;
}
printf("%d%d,x,y");

getch();
return 0;
}


HATAYI ÇÖZEBİLECEK VARSA ÇOK SEVİNİRİM SAYGILAR....


Bu mesaja 2 cevap geldi.

Bu mesajda bahsedilenler: @hotchner12
F
11 yıl
Yüzbaşı

#include <iostream>
#include <stdlib.h>
#include <cmath>
#include <iomanip>
using namespace std;

int a[100], i, j, n, tmp, sonuc, toplam = 0, sayi;

int bul(int a[], int bvks[]);
int yanyana(int a[], int n);
int dizitopla(int a[], int n);
int diziortalama(int a[], int n);
float sapma(int a[], int n);
int varmi(int a[], int n);

int main()
{
int eb=0, ek=0;
int buyukVeKucukSayilar[10];
cout << "Dizi’ye kac tane eleman girilsin = ";
cin >> n;
for (i = 0; i < n; i++)
{
cout << "a" << "["<<i<<"]" << ".Elemani Giriniz = ";
cin >> a;

}

yanyana(a, n);

cout << "\n" << endl;
cout << "Toplam = " << dizitopla(a, n) << endl;
cout << "Ortalama = " << diziortalama(a, n) << endl;

bul(a, buyukVeKucukSayilar);

cout << "En buyuk = " << buyukVeKucukSayilar[0] << "\n";
cout << "En buyuk deger dizi sirasi = " << eb << "\n";
cout << "En kucuk deger dizi sirasi = " << ek << "\n";
cout << "En kucuk = " << buyukVeKucukSayilar[1] << "\n";
cout << "Sapma = " << sapma(a, n) << "\n";
cout << "Aradaki Toplam Sayi = " << varmi(a, n) << "\n";

system("pause");
return 0;
}

int dizitopla(int a[], int n)
{
int toplam = 0;
for (i = 0; i < n; i++) {
toplam = toplam + a;
}
return toplam;

}
int diziortalama(int a[], int n)
{
int ortalama;
ortalama = dizitopla(a, n) / n;

return ortalama;

}
int yanyana(int a[], int n)
{
for (int i = 0; i < n; i++) {
cout << setw(10) << a;
}
}
int bul(int a[], int bvks[]){
int enBuyuk, enKucuk, eb, ek = 0;
int i;

enBuyuk = a[0];
enKucuk = a[0];
for (i = 0; i < n; i++){

if (a > enBuyuk)
enBuyuk = a;
eb = i;
if (a < enKucuk)
enKucuk = a;
ek = i;
}

bvks[0] = enBuyuk;
bvks[1] = enKucuk;
}
float sapma(int a[], int n)
{
int i;
float sapma = 0;
for (i = 0; i < n; i++) {
sapma += (a - diziortalama(a, n))*(a - diziortalama(a, n));
}

return sapma;
}
int varmi(int a[], int n)
{
int i, j, min, max, x, say = 0;
int temp;
max = a[0];
for (i = 0; i<n; i++) {
if (a>max) {
max = a;
}
}
min = a[0];
for (x = 0; x < n; x++) {
if (a < min) {
min = a;
}
}
while (min != max) {
say += 1;
min++;
}
say = say - (sayi + 3);

return say;

}


Beyler bu kodda 'yanyana' ve 'bul' için: must return a value hatası alıyorum. Nasıl çözerim?


Bu mesaja 1 cevap geldi.
L
11 yıl
Yüzbaşı

quote:

Orijinalden alıntı: Fukceng

#include <iostream>
#include <stdlib.h>
#include <cmath>
#include <iomanip>
using namespace std;

int a[100], i, j, n, tmp, sonuc, toplam = 0, sayi;

int bul(int a[], int bvks[]);
int yanyana(int a[], int n);
int dizitopla(int a[], int n);
int diziortalama(int a[], int n);
float sapma(int a[], int n);
int varmi(int a[], int n);

int main()
{
int eb=0, ek=0;
int buyukVeKucukSayilar[10];
cout << "Dizi’ye kac tane eleman girilsin = ";
cin >> n;
for (i = 0; i < n; i++)
{
cout << "a" << "["<<i<<"]" << ".Elemani Giriniz = ";
cin >> a;

}

yanyana(a, n);

cout << "\n" << endl;
cout << "Toplam = " << dizitopla(a, n) << endl;
cout << "Ortalama = " << diziortalama(a, n) << endl;

bul(a, buyukVeKucukSayilar);

cout << "En buyuk = " << buyukVeKucukSayilar[0] << "\n";
cout << "En buyuk deger dizi sirasi = " << eb << "\n";
cout << "En kucuk deger dizi sirasi = " << ek << "\n";
cout << "En kucuk = " << buyukVeKucukSayilar[1] << "\n";
cout << "Sapma = " << sapma(a, n) << "\n";
cout << "Aradaki Toplam Sayi = " << varmi(a, n) << "\n";

system("pause");
return 0;
}

int dizitopla(int a[], int n)
{
int toplam = 0;
for (i = 0; i < n; i++) {
toplam = toplam + a;
}
return toplam;

}
int diziortalama(int a[], int n)
{
int ortalama;
ortalama = dizitopla(a, n) / n;

return ortalama;

}
int yanyana(int a[], int n)
{
for (int i = 0; i < n; i++) {
cout << setw(10) << a;
}
}
int bul(int a[], int bvks[]){
int enBuyuk, enKucuk, eb, ek = 0;
int i;

enBuyuk = a[0];
enKucuk = a[0];
for (i = 0; i < n; i++){

if (a > enBuyuk)
enBuyuk = a;
eb = i;
if (a < enKucuk)
enKucuk = a;
ek = i;
}

bvks[0] = enBuyuk;
bvks[1] = enKucuk;
}
float sapma(int a[], int n)
{
int i;
float sapma = 0;
for (i = 0; i < n; i++) {
sapma += (a - diziortalama(a, n))*(a - diziortalama(a, n));
}

return sapma;
}
int varmi(int a[], int n)
{
int i, j, min, max, x, say = 0;
int temp;
max = a[0];
for (i = 0; i<n; i++) {
if (a>max) {
max = a;
}
}
min = a[0];
for (x = 0; x < n; x++) {
if (a < min) {
min = a;
}
}
while (min != max) {
say += 1;
min++;
}
say = say - (sayi + 3);

return say;

}


Beyler bu kodda 'yanyana' ve 'bul' için: must return a value hatası alıyorum. Nasıl çözerim?

hocam çünkü iki fonksiyonuda int(tam sayı) olarak tanımlamışsınız ama dönen bi tam sayı yok ya return ile bir değer döndürceksiniz yada void olarak tanımlayacaksınız:

void olarak:
 
void yanyana(int a[], int n)
{
for (int i = 0; i < n; i++)
cout << setw(10) << a;
}

void bul(int a[], int bvks[])
{
int enBuyuk, enKucuk, eb, ek = 0;
int i;
enBuyuk = a[0];
enKucuk = a[0];

for (i = 0; i < n; i++)
{
if (a > enBuyuk)
enBuyuk = a;

eb = i;

if (a < enKucuk)
enKucuk = a;

ek = i;
}



< Bu ileti mini sürüm kullanılarak atıldı >

L
11 yıl
Yüzbaşı

quote:

Orijinalden alıntı: T-Skipper

o ödev bitti artık hocam ama yeni ödev de sorun yaşıyorum 2 gündür hala kodu yazamadım . kendimiz belirleyeceğimiz sayıda madeni para atıcaz örn(100) ve kaç yazı kaç tura geleceğini ekrana yazdıracaz(buna bilg karar verecek örn 45 tura 55 yazı)) random yani
#include<stdlib.h>
#include<stdio.h>

int main(){

int i;
unsigned toss;

printf("Enter the number of coin toss = ");
scanf("%u",&toss);
srand(toss);

for(i=1;i<=10;i++){
toss=(1+(rand()%2));
if(toss==x)
x+=1;
if(toss==y)
y+=1;
}
printf("%d%d,x,y");

getch();
return 0;
}


HATAYI ÇÖZEBİLECEK VARSA ÇOK SEVİNİRİM SAYGILAR....

ne hatası var ? Bence sonucu ekranda göremiyorsun çünkü her şeyi tırnak içinde yazmışsın


printf("%d%d,x,y");

yerine:

printf("%d %d" x, y);



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
M
11 yıl
Yüzbaşı

Belirtilen fonksiyonların içinde return deger; gibi bir değişken döndürmek gerekiyor.
Fonksiyon türü void değilse diğer bütün tiplerde bunu yapman gerekir. Döndürdüğün değeri kullanmayacaksan int türünü kullanmanın bir anlamı yok void türünden de yapabilirsin.


 
int bul(){
int sayi = 15;
return sayi;
}

void arttir(int& deger){
deger++;
}




Bu mesajda bahsedilenler: @Fukceng
T
11 yıl
Onbaşı

quote:

Orijinalden alıntı: lavara123


quote:

Orijinalden alıntı: T-Skipper

o ödev bitti artık hocam ama yeni ödev de sorun yaşıyorum 2 gündür hala kodu yazamadım . kendimiz belirleyeceğimiz sayıda madeni para atıcaz örn(100) ve kaç yazı kaç tura geleceğini ekrana yazdıracaz(buna bilg karar verecek örn 45 tura 55 yazı)) random yani
#include<stdlib.h>
#include<stdio.h>

int main(){

int i;
unsigned toss;

printf("Enter the number of coin toss = ");
scanf("%u",&toss);
srand(toss);

for(i=1;i<=10;i++){
toss=(1+(rand()%2));
if(toss==x)
x+=1;
if(toss==y)
y+=1;
}
printf("%d%d,x,y");

getch();
return 0;
}


HATAYI ÇÖZEBİLECEK VARSA ÇOK SEVİNİRİM SAYGILAR....

ne hatası var ? Bence sonucu ekranda göremiyorsun çünkü her şeyi tırnak içinde yazmışsın


printf("%d%d,x,y");

yerine:

printf("%d %d" x, y);

Yok dostm onu duzelttim usigned li kisimda hata veriyor



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
L
11 yıl
Yüzbaşı

quote:

Orijinalden alıntı: T-Skipper


quote:

Orijinalden alıntı: lavara123


quote:

Orijinalden alıntı: T-Skipper

o ödev bitti artık hocam ama yeni ödev de sorun yaşıyorum 2 gündür hala kodu yazamadım . kendimiz belirleyeceğimiz sayıda madeni para atıcaz örn(100) ve kaç yazı kaç tura geleceğini ekrana yazdıracaz(buna bilg karar verecek örn 45 tura 55 yazı)) random yani
#include<stdlib.h>
#include<stdio.h>

int main(){

int i;
unsigned toss;

printf("Enter the number of coin toss = ");
scanf("%u",&toss);
srand(toss);

for(i=1;i<=10;i++){
toss=(1+(rand()%2));
if(toss==x)
x+=1;
if(toss==y)
y+=1;
}
printf("%d%d,x,y");

getch();
return 0;
}


HATAYI ÇÖZEBİLECEK VARSA ÇOK SEVİNİRİM SAYGILAR....

ne hatası var ? Bence sonucu ekranda göremiyorsun çünkü her şeyi tırnak içinde yazmışsın


printf("%d%d,x,y");

yerine:

printf("%d %d" x, y);

Yok dostm onu duzelttim usigned li kisimda hata veriyor

unsigned int toss = 0;



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
W
11 yıl
Yarbay

dostum c dilini bilgisayarda yazıp uygulamak istiyorum öğrenmek açısından visual studio'da yazamıyoruz sanırsam.dev c plus plus dada hata veriyor bilgisayar nedense


Bu mesaja 2 cevap geldi.

Bu mesajda bahsedilenler: @lavara123
C
11 yıl
Yüzbaşı

Codeblocksu dene




Bu mesajda bahsedilenler: @waleur5
L
11 yıl
Yüzbaşı

quote:

Orijinalden alıntı: waleur5

dostum c dilini bilgisayarda yazıp uygulamak istiyorum öğrenmek açısından visual studio'da yazamıyoruz sanırsam.dev c plus plus dada hata veriyor bilgisayar nedense

nasıl bir hata veriyor, işletim sistemi ne ? Visual studio'u neden çalıştıramıyorsun ??



< Bu ileti mini sürüm kullanılarak atıldı >

W
11 yıl
Yarbay

visual studio 2005'i bilgisayar açıyorda onda c dili yazılmıyor diye biliyorum ben yazılıyormuydu?
http://forum.donanimhaber.com/m_99437855/f_//tm.htm#99437855 dostum hata bu


Bu mesaja 1 cevap geldi.
M
11 yıl
Yüzbaşı

Dostum ilk soruda kafanın karışmasının sebebi daha önce continue ve break kavramları ile ilgili pratiğin olmamasından kaynaklanıyor, kullanımlarını araştırman lazım yoksa üstesinden gelebileceğin bir soru o.

break komutu, içinde bulunduğu döngüden çıkar,
continue ise sadece döngünün bir adımını atlar. Aşağıdaki kodda göreceğin gibi, i, 5 olduktan sonra if kontrolüne girer ve continue komutu işlenir, ekrana 1'dan 9'a kadar yazması gerekirken 5 rakamını yazmaz o adımı atladı çünkü ve kaldığı yerden yani 6'dan yazmaya devam eder. continue yerine break olmuş olsaydı, 4'e kadar yazar ve bitirirdi.

 
for(int i=1; i<10; i++){
if(i%5==0){
continue;
}
printf(i);
}




İkinci soruda ise 4 işlemin de sonuclarını ekrana yazdırırsan aralarındaki farkları görebilirsin, cout<<9/2; şeklinde kod girersen derleyici bunları integer olarak alır ve 4 yazar. Ama cout<<9/2.0; şeklinde sayılardan birini ondalık olarak yazarsan derleyici bunu float olarak kabul eder ve ekrana 4.5 yazar. Soruda da bunların kullanımını sormuş zaten, gerisini sen çıkarabilirsin. cout, c dilinde printf komutuna denk geliyor bu arada.


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @cezaalp
C
11 yıl
Yüzbaşı

Çok teşekkür ederim


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @~H!ddeN
G
11 yıl
Teğmen

Merhaba C# ta böyle bir grafik yapmak istiyorum nasıl oluşturabilirim
< Resime gitmek için tıklayın >



M
11 yıl
Onbaşı

C ve C++ Deitel & Deitel kitabı arıyorum nerden temin edebilirim