Yazar |
|
ogge
Vefa
Kayıt: 19.11.2006 |
|
demek istediğin buysa;
312 için 2,3,13 (223,211 tekrar eden olurmu?)
verilen sayının basamaktaki sayıları bir dizide(dizisiz olmaz gibi) tut A dizisi. normal asal sayı bulma işlemini yap(2 den itibaren) ve asal sayıları bulurken kullandığın if deyimi içine for deyimi aç bu asal sayının basamaklarını, sağdan itibaren A dizisinde bulunup bulunmadığını kontrol et yoksa break de çık.(döngü sayısı=asal sayı basamak sayısı kadar) döngünün sonuna kadar geliniyorsa (sayıyı ekrana yazdır) bu asal sayı girilen sayının rakamlarından oluşur.(hem de küçükten büyüğe)... bilmem oldu gibi mi? anladığım kadarıyla böyle, yapamadıysan yardımcı olurum. gerçi dizi kullandık...
ogge®
|
|
Yazar |
|
cracked
malatya
Kayıt: 27.11.2006 |
|
sayı değerlerini bulmak için dizi kullanmak şart değil sayıyı sırayla 10 un katlarına bölüp kontrol ettirerek de sayı değerlerini bulabilir
delilige vurdum...
|
|
Yazar |
|
engineer58
Kayıt: 16.03.2006 |
|
Çok teşekkür ederim ogge craked in dediği gibi 10 a bölme işlemiyle sayidaki rakamları elde ederek soruyu çözeriz sanırım
|
|
Yazar |
|
auzunun
Bursa
Kayıt: 15.01.2006 |
|
Yapabilen yok mu ya ben de merak ettim.
Bir de rakamlar tekrar etmiyor değil mi?
Öldüremiyorsan, yaralama.
|
|
Yazar |
|
iemre
Anadolu
Kayıt: 26.05.2007 |
|
engineer58 sayesinde günler sonra c de kod yazmaya çalıştım.İlk başta kolay gibi görünüyor ama çok kıl bi soru.İşi bozan şey girilecek sayının kaç basamak olduğunun belli olmaması.Öyle bir for döngüsü yapmak gerekiyorki bütün sayılar için kullanılabilsin.Ben bayağı uğraştım baktım olmayacak vazgeçtim.Yapan varsa yazsın bende merak ediyorum cevabı.
More than one
|
|
Yazar |
|
engineer58
Kayıt: 16.03.2006 |
|
ben bir şeyler yaptım ama bir kaç kod daha eklenmesi gerekiyor galiba benim kodda girilen sayinin rakamlariyla yazılabilecek tüm sayiları dahil ediyo yani 2 sayısını 5 kere kullanabiliyo bu da kodun sonsuz döngü olmasına sebep oluyo buraya bir aynı sayı dan var mı gibi bir sınama lazım
bir de main deki for döngüsüyle 1000000 a kadar olan sayiları sınadım bunun yerine girilen bir sayının basamak değerleriyle yazılabilecek sayı kadar dönen bir döngü lazım ayrıca bu döngü de sayi asal olmasa bile döngünün bir sonraki turuna geçilmeli (continue lazım) bunları yapabilen olursa kodumuz tamam
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
int is_prime(int);
int sorgu(int);
int fakt(int x);
int sinamak(int,int);
int basamak(int x);
int main()
{
int i ,deger;
printf("lutfen sayiyi gir ");
scanf("%d",°er);
for(i = 0; i < 100000000; ++i)
if(sinamak(deger,i))
if(is_prime(i))
printf("%d ", i);
return 0;
}
/////////////////////////////////////////////////////////
int is_prime(int val)
{
int k;
if(val == 0 || val == 1)
return 0;
if(val % 2 == 0)
return val == 2;
if(val % 3 == 0)
return val== 3;
if( val % 5 == 0)
return val == 5;
for(k = 7; k * k <= val; k +=2)
if(val %k ==0)
return 0;
return 1;
}
////////////////////////////////////////////////////////////
int fakt(int x)
{
int i,fak;
fak= 1;
for(i = 2; i <= x; ++x)
fak *= i;
return fak;
}
///////////////////////////////////////////////////////////
int basamak(int x)
{
int i;
for(i = 1; x /= 10; ++i)
;
return i;
}
//////////////////////////////////////////////////////////
int sinamak (int x,int y)
{
int x1 = x, y1 = y,i;
int toplam = 0,j;
for(i = 0; i < basamak(y); ++i){
x1= x;
for(j = 0; j < basamak(x); ++j)
if(y1 % 10 == x1 % 10){
toplam ++;
x1 /= 10;
break;
}
else
x1 /= 10;
y1 /= 10;
}
return basamak(y) == toplam;
}
////////////////////////////////////////////////
|
|
Yazar |
|
excellence
Kayıt: 09.07.2007 |
|
Rekürsif bir yapı denediniz mi ?
|
|
Yazar |
|
ceyhun
Amasya
Kayıt: 09.11.2006 |
|
http://www.4shared.com/file/21134518/a73dcb06/deneme.html
Ben böle bise yaptım dogru calısıyodur isallah.
|
|
Yazar |
|
ceyhun
Amasya
Kayıt: 09.11.2006 |
|
Ya benimde engiineer58 ile aynı sorun varmıs.Girilen sayıda bi rakan birden fazla kullanılmıyosa dogru calısıyo.
|
|
Yazar |
|
iemre
Anadolu
Kayıt: 26.05.2007 |
|
Ceyhun bir de senin kod belli bir basamağa kadar çalışıyor.7 basamaklı bir sayı girdiğin zaman biyerde tıkanıyor.Ama ıraya kadar bile yazmak gerçekten iyi birşey bence.
More than one
|
|
Yazar |
|
xceo
Bingöl
Kayıt: 13.09.2007 |
|
engineer58 verdiğin kodlarda çalışma performansı nı arttırmak gerekli çok ağır çalışıyor.. Nasıl yapabiliriz?
http://www.makosan.net
Bir deli bu aralar...
|
|
Yazar |
|
cengineer
Kayıt: 27.10.2006 |
|
| #include <stdio.h>
#include <stdlib.h>
typedef struct arkadas_listem{
char name[10];
char surname[10];
int no;
}FRIEND;
int main ()
{
int adet,i=0;
FRIEND *uye=NULL;
FILE *dosya;
printf(" how many member will you add? ");
scanf("%d",&adet);
uye=((FRIEND *)malloc(sizeof(FRIEND)*adet));
dosya=fopen("listem.txt","w+");
if(dosya==NULL)
{
printf(" file opening error, program will terminated!");
exit(0);
}
do{
printf(" record a friend's information : ");
printf(" record the name :");
scanf("%s",(uye+i)->name);
printf(" record the surname :");
scanf("%s",(uye+i)->surname);
printf(" record the tel_no :");
scanf("%d",(uye+i)->no);
printf(" %s %s %d ",(uye+i)->name,(uye+i)->surname,(uye+i)->no);
fprintf(dosya,"%s %s %d
",(uye+i)->name,(uye+i)->surname,(uye+i)->no);
}while(i<adet);
fclose(dosya);
return 0;
} |
dosyaya yazma sırasında program sonlanıyor neden acaba anlamadım yardım edermisiniz?
" Her arayan bulamayabilir ancak bulanlar arayanlardir..! " Imam-i Rabbâni
|
|
Yazar |
|
clairvoyant
Antalya
Kayıt: 05.05.2006 |
|
Problemin asıl kaynağı nedir bilemiyorum ama üye numarasını okurken & operatörünü kullanman gerekir.
scanf("%d", &((uye+i)->no));
Bir de (yanlış görmediysem) döngü içinde i sayacını arttırmamışsın.
Let`s make this world a better place to live !
|
|
Yazar |
|
cengineer
Kayıt: 27.10.2006 |
|
clairvoyant yazdi | Problemin asıl kaynağı nedir bilemiyorum ama üye numarasını okurken & operatörünü kullanman gerekir.
scanf("%d", &((uye+i)->no));
Bir de (yanlış görmediysem) döngü içinde i sayacını arttırmamışsın. |
çok sağol belki bir saattir bakıyorum ama bulmadım deleme hatası da vemiyordu...
" Her arayan bulamayabilir ancak bulanlar arayanlardir..! " Imam-i Rabbâni
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | | | | |