當前位置:編程學習大全網 - 編程語言 - C語言編程問題,編譯老是通不過 (已排版)。。用了指針和函數。不知道對不對。。。

C語言編程問題,編譯老是通不過 (已排版)。。用了指針和函數。不知道對不對。。。

我只幫妳看語法問題,至於邏輯問題,因為不知道妳要幹嘛就算了吧。妳的sort的第壹個參數傳參不對,char *p 是指向char型數據的指針,而char xm[][]的xm會被編譯器隱式轉化為指向char[]的指針,而且char xm[][]被傳參的時候,又被編譯器隱式轉化為char ( *xm)[]。只要把參數改正就行了。

樓上的回答雖然也行,但是。。修改幅度太大了吧。。

我的blog有相關資料,壹起學習哈,/xihuanqiqi

#include <stdio.h>

#include <stdlib.h>

int main()

{

int xh[3]={1001,1002,1003},bj[3]={11,12,11};

float cj1[3]={99.5,77.9,92.5},cj2[3]={88.5,56.5,99.0},cj3[3]={89.5,87.5,60.5},z[3]={277.5,221.9,252.0};

char xm[3][9]={"zhang","li","wang"},(*p)[3];

void sort(char (*x)[3],int a1[3],int a2[3],float a3[3],float a4[3],float a5[3],float a6[3]);

p=xm;

sort(p,xh,bj,cj1,cj2,cj3,z);

return 0;

}

void sort(char (*x)[3],int a1[3],int a2[3],float a3[3],float a4[3],float a5[3],float a6[3])

{

int i,k;

char t[9];

float u;

for(i=0;i<2;i++)

{

if(strcmp(*(x+i),*(x+i+1))>0)

{

strcpy(t,*(x+i));

strcpy(*(x+i),*(x+i+1));

strcpy(*(x+i+1),t);

k=a1[i];

a1[i]=a1[i+1];

a1[i+1]=k;

k=a2[i];

a2[i]=a2[i+1];

a2[i+1]=k;

u=a3[i];

a3[i]=a3[i+1];

a3[i+1]=u;

u=a4[i];

a4[i]=a4[i+1];

a4[i+1]=u;

u=a5[i];

a5[i]=a5[i+1];

a5[i+1]=u;

u=a5[i];

a5[i]=a5[i+1];

a5[i+1]=u;

}

}

for(i=0;i<3;i++)

printf("%d,%d,%s,%.1f,%.1f,%.1f,%.1f\n",

a1[i],a2[i],*(x+i),a3[i],a4[i],a5[i],a6[i]);

}

  • 上一篇:單片機編程器買什麽樣的
  • 下一篇:如何用Eclipse建立壹個Java應用程序?
  • copyright 2024編程學習大全網