PDA

View Full Version : بدعمل کردن آرایه با اشاره گر



trminator
پنج شنبه 21 شهریور 1392, 15:22 عصر
کد زیر مجموعه ای از اعداد را از ورودی می خواند و با استفاده از اشاره گر مرتب می کند. بعد از مرتب سازی خانه اول آرایه در هر شرایطی مقدار صفر می گیرد.

#include <stdio.h>
void main()
{
int k,*a,m;
void sort(int*,int);
printf("How many element you want to sort\nx=?");
scanf("%d",&m);
a=(int*)malloc(m*sizeof(int));
for(k=0;k<m;++k){
scanf("%d",(a+k));
}
printf("first cell is=%d",*(a+k));
sort(a,m);
for(k=0;k<m;++k)
printf("%d ",*(a+k));
}
void sort(int*arr,int x)
{
int i,j,temp;
for(i=0;i<x;i++){
for(j=0;j<x-i;j++){
if(*(arr+j)>*(arr+j+1)){
temp=*(arr+j);
*(arr+j)=*(arr+j+1);
*(arr+j+1)=temp;
}
}
}
}


چطور می توانم کاری کنم که خانه اول آرایه مرتب شده درست شود؟

hardworker110
جمعه 22 شهریور 1392, 16:27 عصر
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
void main()
{
int k,*a,m;
void sort(int*,int);
printf("How many element you want to sort\nx=?");
scanf("%d",&m);
a=(int*)malloc(m*sizeof(int));
for(k=0;k<m;k++){
scanf("%d",(a+k));
}
// printf("first cell is=%d",*(a+k));
sort(a,m);
for(k=0;k<m;k++)
printf("%d ",*(a+k));
scanf("%d",&m);
}
void sort(int*arr,int x)
{
int i,j,temp;
for(i=x-1;i>0;i--){
for(j=0;j<i;j++){
if(*(arr+j)>*(arr+j+1)){
temp=*(arr+j);
*(arr+j)=*(arr+j+1);
*(arr+j+1)=temp;
}
}
}
}