lostyazilim
tr.link

C dilinde hatayı nerde yaptım ?

5 Mesajlar 929 Okunma
lstbozum
tr.link

Cylde Cylde WM Aracı Kullanıcı
  • Üyelik 26.01.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Computer Programming
  • Konum İstanbul Avrupa
  • Ad Soyad O** Ö**
  • Mesajlar 222
  • Beğeniler 78 / 37
  • Ticaret 0, (%0)
Hayırlı geceler değerli wmaracı sakinleri bir algoritma oluşturmaya çalıştım çok iyi olmadığım için tıkanıp kaldım yardım ederseniz sevinirim

Soru şu: int a[] = {4, 8, 3, 1, 18, 9, 21, 20, 5, 17} klavyeden 10 dan küçük n tam sayısı giriliyor dizinin ilk n adet elemanınını dizinin sonuna atayan
ve baştaki indislere 0 atayan program (Dizi Sabit Dizi)
örnek n = 7
0 0 0 4 8 3 1 18 9 21

benim yazdığım kod şu #include
#define SIZE 10

int main() {
int n,i,j=0;
int a[] = {4, 8, 3, 1, 18, 9, 21, 20, 5, 17}
printf("Bir Sayı Giriniz: ");
scanf("%d", & n);

for(i=0 ; i if(i<10-n){
a[i] = 0;
}
else {
a[i] = j;
}
}
for(i=0; i printf("a[%d] = %d \n", i, a[j]);


return 0;
}


nasıl yapacağım nereyi düzenleyeceğim ilgilenenlere teşekkür ederim
 

 

wmaraci
reklam

btuhan btuhan WM Aracı Kullanıcı
  • Üyelik 27.03.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Asp.Net Mvc &amp; C# Programmer
  • Konum İstanbul Avrupa
  • Ad Soyad B** O**
  • Mesajlar 20
  • Beğeniler 6 / 3
  • Ticaret 0, (%0)
Yaptığım değişiklikleri koda yorum olarak ekledim.


#include
#define SIZE 10

int main() {
int n,i,j=0;
int a[] = {4, 8, 3, 1, 18, 9, 21, 20, 5, 17};
printf("Bir Sayı Giriniz: ");
scanf("%d", & n);

for(i=0 ; i if(i<10-n){
a[i] = 0;
}
else {
// a[i] = j; buraya gerek yok.Burda sondaki elemanları old. gibi //bırakmak yerine bunları da 0 a atamışsın.Yukarıda j yi sıfıra atamışsın çünkü.
}
}
for(i=0; i printf("a[%d] = %d \n", i, a[i]);//a[j] a[i] olarak değiştdim.


return 0;
}
 

 

Cylde Cylde WM Aracı Kullanıcı
  • Üyelik 26.01.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Computer Programming
  • Konum İstanbul Avrupa
  • Ad Soyad O** Ö**
  • Mesajlar 222
  • Beğeniler 78 / 37
  • Ticaret 0, (%0)
yanıtın için teşekkürler hocam programı çalıştırdğımda atıyorum 4 rakamını girdim son 4 indis hariç diğerlerine 0 atıyor benim istediğim 4 girildiğinde ilk 4 indisi alacak ve son 4 indise atayacak bunu nasıl yaparım btuhan
 

 

btuhan btuhan WM Aracı Kullanıcı
  • Üyelik 27.03.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Asp.Net Mvc &amp; C# Programmer
  • Konum İstanbul Avrupa
  • Ad Soyad B** O**
  • Mesajlar 20
  • Beğeniler 6 / 3
  • Ticaret 0, (%0)
Bunu deneyin hocam.


#include
#define SIZE 10

int main() {
int n,i,j=0;
int a[] = {4, 8, 3, 1, 18, 9, 21, 20, 5, 17};
printf("Bir Sayı Giriniz: ");
scanf("%d", & n);

int b = 10-n; //b kadar eleman 0 yapılacak
for(i=SIZE-1 ; i>=0 ; i--){
if(i<(b)){ a[i]=0;} //baştaki elemanları 0 a atıyoruz.
else{
a[i]=a[(n-1)]; //sondan başlayarak klavyeden girilen elemanı sona atıyoruz.
n--;
}
}



for(i=0; i printf("a[%d] = %d \n", i, a[i]);


return 0;
}
 

 

wmaraci
wmaraci

Cylde Cylde WM Aracı Kullanıcı
  • Üyelik 26.01.2017
  • Yaş/Cinsiyet 26 / E
  • Meslek Computer Programming
  • Konum İstanbul Avrupa
  • Ad Soyad O** Ö**
  • Mesajlar 222
  • Beğeniler 78 / 37
  • Ticaret 0, (%0)
Çok teşekkür ederim hocam iyi çalışmalar dilerim btuhan
btuhan

kişi bu mesajı beğendi.

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al