#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main() {
int i,j,a,temp;
char d;
do {
char word[2000]={0};
a=0;
printf("\nBir Kelime Girin ---> "); scanf("%s",&word);
printf("\nGirdiginiz Kelime ---> %s",word);
for(i=0;i<2000;i++) {
if(word[i]>0) a++; }
//Yukarıdaki for döngüsünde girilen kelimenin kaç karakterden oluştuğu bulunuyor.
for(i=0;i<a;i++) {
for(j=0;j<i;j++) {
if(word[i]<word[j]) {
temp=word[i];
word[i]=word[j];
word[j]=temp;
}
}
}
//Bu for döngüsünde sıralama işlemi yapılıyor. Sıralama yaparken geçici bir değişken olarak temp kullanıldı.
printf("\n\nKelimenin Alfabatik Sirali Sekli ---> ");
for(i=0;i<a;i++)
printf("%c",word[i]);
printf("\n\nTekrar Denemek Ister Misiniz ? E/H ---> "); d=getch();
} while ( d=='e' || d=='E' );
getch();
}
Bu ne demek? Neyin bir tanesini algılıyor?Bunda sadece bir tanesini algılıyor. Onu kırmak için ne yapmam lazım?
#include <iostream>
#include <string>
#define __ONCE_BUYUK_ALFABETIK__
using namespace std;
bool isSmaller(const char& item1, const char& item2) {
#ifdef __DUZ__
return toupper(item1) < toupper(item2);
#endif
#ifdef __ONCE_BUYUK_ALFABETIK__
if (toupper(item1) == toupper(item2)) {
return item1 < item2;
}
return toupper(item1) < toupper(item2);
#endif
#ifdef __ONCE_BUYUK__
return item1 < item2;
#endif
}
void swapItems(char& item1, char& item2) {
char temp{ item1 };
item1 = item2;
item2 = temp;
}
string& sortStr(string& str) {
for (auto i{ 0 }; i < str.size() - 1; ++i)
for (auto j{ 0 }; j < str.size() - i - 1; ++j)
if (!isSmaller(str[j], str[j + 1]))
swapItems(str[j], str[j + 1]);
return str;
}
int main() {
string str;
cout << "Metin giriniz: ";
cin >> str;
#ifdef __ALL_LOWERCASE__
for (char& c : str)
c = tolower(c);
sort(str.begin(), str.end());
cout << "Sirali metin: " << str << endl;
return 0;
#endif
sortStr(str);
cout << "Sirali metin: " << str << endl;
return 0;
}
Sağ olasın ama C++ kodu lazımdı. Sanırım halletim, son bir kaç ayarım kaldı.Bu kodu yazmaya başladıktan sonra senin son paylaştığını gördüm. O C++ değil, C kodu.
Sıralamanın çeşitli yolları var. Birkaçını paylaştığım kodda gösterdim. Daha senin hangisini istediğin bile belli değil.
Bu ne demek? Neyin bir tanesini algılıyor?
Maşallah herkes C önermiş. Ben de en iyi bildiğim Bubble Sort ile yapayım bari.
Koşullu derleme mevcut. Hangisini istersen onu baştaki #ifdef'in oraya yazıp çalıştırırsın.
Ek kütüphaneler isteyebilir. Tam emin değilim.
Kod:#include <iostream> #include <string> #define __ONCE_BUYUK_ALFABETIK__ using namespace std; bool isSmaller(const char& item1, const char& item2) { #ifdef __DUZ__ return toupper(item1) < toupper(item2); #endif #ifdef __ONCE_BUYUK_ALFABETIK__ if (toupper(item1) == toupper(item2)) { return item1 < item2; } return toupper(item1) < toupper(item2); #endif #ifdef __ONCE_BUYUK__ return item1 < item2; #endif } void swapItems(char& item1, char& item2) { char temp{ item1 }; item1 = item2; item2 = temp; } string& sortStr(string& str) { for (auto i{ 0 }; i < str.size() - 1; ++i) for (auto j{ 0 }; j < str.size() - i - 1; ++j) if (!isSmaller(str[j], str[j + 1])) swapItems(str[j], str[j + 1]); return str; } int main() { string str; cout << "Metin giriniz: "; cin >> str; #ifdef __ALL_LOWERCASE__ for (char& c : str) c = tolower(c); sort(str.begin(), str.end()); cout << "Sirali metin: " << str << endl; return 0; #endif sortStr(str); cout << "Sirali metin: " << str << endl; return 0; }
Evet kusura bakma 6 saattir bununla uğraşıyorum kafam gitti artık iyice karıştı görselde ki gibi olmaması yani ali alfabeye göre sıralayıp velili kendi içinde sıralandırması için napabilirim ?C++ kodu lazımdı da birinin sana C ile C++ farkını da öğretmesi lazım herhalde. Sen C yazıyorsun. Benim paylaştığım C++.
Sanırım aldığın girdide boşluk olunca okumamasından şikayetçisin. Spagetti kodunu okuyup nerede hata yaptığını anlamaya çalışacağım.
scanf ile almışsın o öyle yapar. getline, fgets vb. birkaç şey kullanabilirsin.
Bu arada deidğin gibi C istiyorumEvet kusura bakma 6 saattir bununla uğraşıyorum kafam gitti artık iyice karıştı görselde ki gibi olmaması yani ali alfabeye göre sıralayıp velili kendi içinde sıralandırması için napabilirim ?
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.