girilen bir cümlede en fazla hangi harften vardır

Başlatan Zey54, 22 Aralık 2013 - 13:06:59

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Zey54

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
   int i;
for (i=65;i<=90;i++)


printf("%c, ",i);

printf("\n");

for (i=97;i<=122;i++)

printf("%c, ",i);

   return 0;
}



burada alfabedeki büyük ve küçük harflerin gösterimi var yani harfleri tek tek tanımlamak gerekmiyor sanırım

programın kullanımı;
Cümle giriniz_
"merhaba dünya" enter'a basınca
en fazla kullanılan harf "a" diye bir mesaj vermeli program yardımcı olabilir misiniz ? :-\

91011

#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
    int i=0,sayac=0,b=0,j=0;
    char a[30];
    scanf("%s",a);
    for (i=0; i<=29; i++)
    {
        for(j=i+1; j<=30; j++)
        {
            if(a[i]==a[j])
                sayac++;
            if(b<=sayac)
            {
                b=sayac;
            }
        }
    }
    printf("En fazla tekrar eden harf %d",b);



    return 0;
}


şöyle olması lazım ama benimki çalıştırdığımda büyük bir sayı döndürüyor.
Tanrı konuşmaz, şeytan fısıldar...

hseyin97

Alıntı yapılan: 91011 - 18 Ocak 2014 - 16:10:34
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
    int i=0,sayac=0,b=0,j=0;
    char a[30];
    scanf("%s",a);
    for (i=0; i<=29; i++)
    {
        for(j=i+1; j<=30; j++)
        {
            if(a[i]==a[j])
                sayac++;
            if(b<=sayac)
            {
                b=sayac;
            }
        }
    }
    printf("En fazla tekrar eden harf %d",b);



    return 0;
}


şöyle olması lazım ama benimki çalıştırdığımda büyük bir sayı döndürüyor.

Sizin programınız bir harften en fazla kaç tane olduğunu sayar. Ve büyük bir sayı döndürmesinin sebebi ise sayacı for loop'unun içinde 0'a eşitlememeniz.

sayz

basitçe bi şey karaladım:

#include <stdio.h>
#define MAX 100

int main()
{
char cumle[MAX];
int abece[MAX] = {0};// alfabedeki harfleri temsilen bir dizi
int  i, k, en_cok, en_indis;

printf("Bir cümle girin lütfen: ");
gets(cumle);

for(i=0; cumle[i] != '\0'; i++)
abece[25 - ('z' - cumle[i])]++; //cümlede dolaşırken her harf için dizideki indisi 1 arttırıyoruz

en_cok = abece[0];
en_indis = 0;

for(k = 0; k < 25; k++)
if( abece[k] > en_cok ) {
en_cok = abece[k]; //en çok geçen harfin sayısını en_cok değişkenine atıyoruz
en_indis = k; // o harfin abece dizisindeki indisini bulmak için k'yı da yedekliyoruz
      }
     
printf("Bu cümlede en çok '%c' harfi kullanıldı.(%d kere)\n", ('a' + en_indis), en_cok); //abece dizisindeki indisi 'a''nın üstüne ekliyoruz ve yazdırıyoruz
return 0;
}

sem

Bu başlıkta sorun kaldı mı yoksa açıkta kalan bir konu var mıdır?
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?