回 帖 发 新 帖 刷新版面

主题:[原创]这个程序能通过编译,却得不到正确结果。????

#include<stdio.h>
#include<conio.h>
#define maxsize 10
  typedef struct
    { int data[maxsize];
      int length;
    }sqlist;
    sqlist *p;
     main()
       { int i,j,k;
          printf("please input yuanshu\n");
           for(i=0;i<maxsize-1;i++) 
            scanf("%d\n",&p->data[i]);
               for(i=0,j=maxsize-1;i<j;i++,j--)

                  {k=p->data[i];
                   p->data[i]=p->data[j];
                    p-data[j]=k;
                   }
                   for(i=0;i<maxsize-1;i++)
                        printf("%d\n",p->data[i]);
                         getch();
      }

回复列表 (共5个回复)

沙发

我认为你的程序有一个错误就 是for(i=0;i<maxsize-1;i++) 
            scanf("%d\n",&p->data[i]);
应该为for(i=0;i<=maxsize-1;i++) 
            scanf("%d\n",&p->data[i]);才和后面的一致

板凳

#include<stdio.h>
#include<conio.h>
#define maxsize 10
  typedef struct
    { int data[maxsize];
      int length;
    }sqlist;
    sqlist *p;
     main()
       { int i,j,k;
          printf("please input yuanshu\n");
           for(i=0;i<=maxsize-1;i++)
            scanf("%d",&p->data[i]);
               for(i=0;i<=maxsize-1;i++)
                  for(j=maxsize-1;i<=j;j--)
                  {if(p->data[i]>p->data[j]){k=p->data[i];
                   p->data[i]=p->data[j];
                    p->data[j]=k;
                   }
                   }
                   for(i=0;i<=maxsize-1;i++)
                        printf("%d\n",p->data[i]);
                         getch();
      } 
原以为是=的问题,实际算法也有问题,已改 

3 楼

关注

4 楼

#include<stdio.h>
#include<conio.h>
#define maxsize 10
typedef struct
{ int data[maxsize];
  int length;
 }sqlist;
sqlist *p;
main()

  int i,j,k;
  //分配空间
  p = (sqlist*)malloc( sizeof(sqlist) );  //(1)
  if(NULL==p)   
     return;
     
  printf("please input yuanshu\n");
  for(i=0;i<maxsize;i++) //(2)
  {
    scanf("%d\n",&p->data[i]);
   }
   for(i=0,j=maxsize-1;i<j;i++,j--)
   {
     k=p->data[i];
     p->data[i]=p->data[j];
     p-data[j]=k;
    }
    for(i=0;i<maxsize;i++)
      printf("%d\n",p->data[i]);//(3)

    getch();

}//endmain
三个地方可能有问题:
(1)p是指针应当分配空间
(2)scanf中应为maxsize 而非maxsize-1;
(3)printf中应为maxsize 而非maxsize-1;



5 楼

关注

我来回复

您尚未登录,请登录后再回复。点此登录或注册