random_shuffle fonksiyonu yerine daha basit ve ayni isi yapacak bisey var mi? |
yeni başlayanllar için küçük program kodları ve kısa açıklammalar http://www.zeynelakcay.com |
bence iyi olmuş, yeni mi burası ? daha da geliştirilebilirse çok iyi olur. |
#include <conio.h> |
öncelikle teşekkürler. char cumle yerine char *cumle yazsaydık nasıl olurdu peki. pointerlar kafamı karıştırıyor ama hoca pointer kullanmamızı istiyor. |
öncelikle teşekkürler, evet yeni yaklaşık bir iki aya yakın oluyor siteyi düzenleyeli fırsat buldukça yeni kodalar ve açıklamalar ekleyecegim... |
öncelikle teşekkürler, evet yeni yaklaşık bir iki aya yakın oluyor siteyi düzenleyeli fırsat buldukça yeni kodalar ve açıklamalar ekleyecegim... |
arkadaşlar 3x3 matriste 1i boşluklu 8 sayı atamayı sormuştum biraz önce. şimdi bi sey daha sormak istiyorum, o boşluğa ben değer girecegim eger saginda, solunda, yukarisinda, asagisinda varsa onla yer degistirecek. soruyu yanlis anlayip satir sutun sirasina gore ayarlamisim ben yani 4e basinca 4.terim bosluktaysa o yer degistirsin yapmisim yani olmasi gereken su : 1 5 6 4 8 2 7 3 eger burda 6ya basarsam şöyle olacak 1 5 4 8 6 2 7 3 boyle boyle ilerlesin istiyorum. nasil ilerleyebilirim ? boşluğu buldurup sonra eger aradaki mesafe >1 degilse yer degistirsin demek istiyorum aslinda mantigi da az cok anliyor ama koda dokemiyorum karistiriyorum düzeltme : arkadaşlar epey yazdım ilerledim bi şekilde sağdan, soldan ve üstten alıyorum değeri fakat aşağıdaki rakamı almaya tıklayınca farklı bi şeyler yapıyor. neresi hatalı anlamadım yardımcı olur musunuz ? kod : #include <iostream> not : evet biliyorum epey uzattım ama anca böyle yapabildim ![]() |
C de yazılmayacak hale gelinceye kadar C de devam edicem ![]() #include <stdio.h> |
Derleyici hata veriyor. Lütfen yardım edermisiniz?
|
for(i=1; i<=N; i++) , dizinin not[5] diye bir adresi yok en son not[4] var . Bunu bir düzelt tekrar bakalım. |
dediğini yaptım i<N şeklinde yaptım ama yine hata verdi. ben resim yükledim belki resimden daha iyi görünebilir hata. < Resime gitmek için tıklayın > |
Resim açılmıyor. |
Yada bu link dede var resim http://a1303.hizliresim.com/17/1/kmmvr.gif |
Kelime secimi yanlis. not yerine baska bir degisken adi kullanmak ile basla. notArr gibi. Sonra diger hatalara bir daha bakarsin. Hata not in reserve olmasi. Edit: Baska hata yokmus... #define N 5 |
Tamam şimdi oldu. İnsanın ingilizcesinin olmaması çok kötü birşey :) Çok teşekkürler. |
Aşağıda verdiğim kodlar normalde bir programın parçası. Ancak bu bölüm programı çok yavaşlatınca, ayırıp tek program yapıp sorunu anlamaya çalışıyorum. Ancak programı bu kadar yavaşlatan şeyin ne olduğunu bir türlü bulamadım. Program 200000 den daha uzun bir karakter dizisinde c ve g karakterlerini arıyor bulduğunda bunların yerini yerler değişkenine atıyor, c ve g karakterlerini de büyük yapıyor. Aslında son derece basit bir kod ama bana kafayı yedirecek. Eğer dizi değişkeni ile ilgili farklı bir işlem yaparsam (yazdırmak gibi) çalışma süresi değişiyor. Bazen 1 sn daha az sürede tamamlarken basit bir değişiklik ile 4-5 sn civarına çıkıyor. Bu konuda bir fikri olan varsa duymak isterim.
|
Normal o kadar çıkması. Ama süreyi kısaltacak birkaç ipucu verebilirim. Dizi boyutu 1-2 mb ı geçmediği sürece yerel olarak ayırmak. Bu, malloc ile alınmış olandan biraz daha hızlı çalışır. Yani; dizi=(char *)malloc(300000); yerine char dizi[300000]; Dosyayı açtıktan sonra büyükçe bir tampon bellek vermek. FILE *gr = fopen(...); char buffer[32 * 1024]; setvbuf(gr, buffer, _IOFBF, 32 * 1024); Dosyayı byte byte okumak yerine tek seferde alıp diziye atmak. fread((void *) dizi, 1, 300000, gr); c ve g karakterlerini ayrı ayrı kontrol etmek yerine tek sefere indirmek. Yani if(*(dizi+i)=='c' && *(dizi+i+1)=='g') yerine const short cg = 25447; // Bu sayının ilk byte ı 'c', ikinci byte ı 'g'. if(*((short *) dizi + i) == cg) ... Aklıma gelenler bunlar. Şimdi bunlar içinde süre alacak olan sadece cg kontrolü. Ortalama 150000 karşılaştırma yapıyor. Eğer diziyi dosya yapısını bozmadan sıralayacak bir yöntem bulunursa ikili arama ile bu son tıkanıklıkta giderilebilir. |
#include <string.h>
#include <stdio.h>
main()
{char cumle;
int b=0,i;
printf("cumleyi giriniz\n");
gets(cumle);
for(i=0;i<strlen(cumle);i++)
if(cumle=="A"||cumle=="a") b++;
printf("%u",b);
getch();
}
bu program niye çalışmıyor biri bana açıklayabilir mi?
Bu mesaja 1 cevap geldi. Cevapları Gizle