GHOSTTt
80+
- Katılım
- 26 Mart 2020
- Mesajlar
- 49
Dahası
- Reaksiyon skoru
- 14
- İsim
- x
Bu soruyla ilgili bu kodu yazdım fakat eksik şu array1 in yerlerini değiştirmemesi lazım ama değiştiriyor array2 gibi başka bir diziye atayıp yaptım aşağıdaki kodda burda da sorudaki adres mantığına uygun bu konuda yardımcı olurmusunuz array1 dizisini pointer üzerinden sıralıyım ama array1 in yerleri değişmesin ????
#include<stdio.h>
#include<stdlib.h>
#define size 5
int main()
{
int array1[size],array2[size];
int temp;
int* ptr;
for (int i = 0; i < size; i++)
{
printf("%d. degeri giriniz: ", i);
scanf_s("%d", &array1);
array2 = array1;
}
ptr = array2;
for (int i = 1; i < size; i++)
{
for (int j = 0; j < size - i; j++)
{
if (*(ptr + j) > * (ptr + j + 1))
{
temp = (ptr + j);
(ptr + j) = (ptr + j + 1);
(ptr + j + 1) = temp;
}
}
}
printf("array1 : ");
for (int i = 0; i < size; i++)
{
printf("%d ", array1);
}
printf("\n");
printf("\npointer degiskeni ile siralanmis hali:\n");
for (int i = 0; i < size; i++)
{
printf("adres : %p -------- ", ptr);
printf("deger : %d \n", *ptr);
ptr++;
}
system("pause");
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#define size 5
int main()
{
int array1[size],array2[size];
int temp;
int* ptr;
for (int i = 0; i < size; i++)
{
printf("%d. degeri giriniz: ", i);
scanf_s("%d", &array1);
array2 = array1;
}
ptr = array2;
for (int i = 1; i < size; i++)
{
for (int j = 0; j < size - i; j++)
{
if (*(ptr + j) > * (ptr + j + 1))
{
temp = (ptr + j);
(ptr + j) = (ptr + j + 1);
(ptr + j + 1) = temp;
}
}
}
printf("array1 : ");
for (int i = 0; i < size; i++)
{
printf("%d ", array1);
}
printf("\n");
printf("\npointer degiskeni ile siralanmis hali:\n");
for (int i = 0; i < size; i++)
{
printf("adres : %p -------- ", ptr);
printf("deger : %d \n", *ptr);
ptr++;
}
system("pause");
return 0;
}