程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> xcode-[c語言]無語法錯誤,但是結果不對,大一水平,求幫助~~!

xcode-[c語言]無語法錯誤,但是結果不對,大一水平,求幫助~~!

編輯:編程解疑
[c語言]無語法錯誤,但是結果不對,大一水平,求幫助~~!

編譯環境 xcode

#include

int main(int argc, const char * argv[]) {
int k,i,j,a[4],m;
printf("請輸入4個不同的數字\n");
for (i=0;i<4;i++)
scanf("%d",&a[i]);

for(i=0;i<4;i++)
{
    for(j=0;j<4-i;j++)
        if(a[j]>a[j+1])
        {k=a[j];a[j]=a[j+1];a[j+1]=k;}
}
printf("此數組從小到大排列為:");
for(i=0;i<4;i++)
    printf("%d ",a[i]);
printf("請再額外輸入一個與以上數字都不相同的數字“,這個數字將依序插入已經排列好的數組中\n");
int b[5],*pa,*pb;
pa=a;pb=b;
for(i=0;i<4;i++)
    *(pb+i)=*(pa+i);
    //b[i]=a[i];
scanf("%d",&b[4]);
for(i=0;i<5;i++)
{for(j=0;j<5-i;j++)
        if(b[j]>b[j+1])
        {m=b[j];b[j]=b[j+1];b[j+1]=m;}
};
for(i=0;i<5;i++)
    printf("%d ",b[i]);
return 0;

}

簡單的來說就是2個冒泡法,第一個冒泡法正常,
第二個運行結果總會出現一個0來取代之前輸入的最大數字,實在不知道問題出在哪裡。。。求指點

最佳回答:


第一個排序的算法已經錯了!
當 i = 0 時,j 已經等於 3 了,再 加 1 時對於數組 a 來說已經越界了。

被你誤導了!你的排序算法有問題的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved