台灣最大程式設計社群網站
線上人數
986
 
會員總數:246268
討論主題:189809
歡迎您免費加入會員
討論區列表 >> C# >> 我該如何自訂陣列大小且讓它加二後輸出
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
我該如何自訂陣列大小且讓它加二後輸出
價值 : 0 QP  點閱數:3339 回應數:0
樓主

dean
初學者
51 11
2 15
發送站內信

各位大大:我可以自訂陣列大小了,不過還是覺得怪怪的,目前問題是,呼叫add函數(自動加p值)會產生錯誤,而且小弟發現只要是遇到傳指標值得就有問題,輸出的都不是我要的值,請各位幫幫忙!以下是小弟的c程式。

#include <stdio.h>
#include <stdlib.h>

main()
{
int m,n,*ptr;
clrscr();

printf("please input 2 number to set size of the array(m*n):");
scanf("%d %d",&m,&n);
ptr=(int*)malloc(m*n*sizeof(int));

    /* set the content */
printf("please input 12 number to set the content of array :\n");
getdata(m,n,*ptr);

add(m,n,*ptr);

}

int getdata(int m,int n,int *ptr)
   {
     int r,t;
     for (r=0;r<m;r++)         /* row */
       {
       for (t=0;t<n;t++)       /* colum */
 {
 scanf("%d",*ptr);     /*input array content*/
 printf("a[%d][%d]=%2d\n",r,t,ptr);  /* this is show ptr address in memory */
 ptr=ptr+1;
 }
       }
    printf("\n");

   }


      /* to add p for every number */
int add(int m,int n,int *pptr)
  {
   int i,j,p;
   printf("what number would you like to add?\n");
   scanf("%d",&p);

   for(i=0;i<m;i++)
     {
     for (j=0;j<n;j++)
       {
       *(pptr-i*n-j)+=p;      /* (pptr+i*n+j)=*(pptr+i*n+j)+p; */
       printf("a[%d][%d]=%2d  ",i,j,*(pptr-i*n-j));
       pptr=pptr-1;
       }
     printf("\n");

   }
   getch();
  }

本篇文章發表於2002-10-17 23:56
目前尚無任何回覆
   

回覆
如要回應,請先登入.