kitty 發問時間: 電腦與網際網路程式設計 · 7 年前

C語言跑出來的答案

#include <stdio.h>

main()

{

int i,s;

int [6];

typedef int * stair;

stair b;

a[0]=83;

a[1]=13

b=&a[2]);

s=0;

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

{

*b=a[i-2]%[i-1];

s+=(b*);

b++;}printf("%d\n",s);

}.跑出來的答案是10 有人可以告訴我嗎?? 謝謝

已更新項目:

sorry ~~ 那是 int a[6];

2 個解答

評分
  • 7 年前
    最佳解答

    程式碼是不是打錯了??

    int [6];

    這裡就怪怪的..

    2013-11-30 00:30:35 補充:

    看懂了,不過怪怪的地方不只那個

    更改後的程式如下:

    http://ideone.com/tY7BaK

    講解一下比較重要的部分

    typedef int* stair; 其實就是把int*用成stair來取代而已,也就是說下一行的stair b;就等於int* b;

    b=&a[2]; 是指說b的指標指向了a[2]的位址

    不過由於一開始沒有給定a[2]的數值所以那邊會是一個不重要的亂數

    主要的過程是for迴圈裡的變化

    *b=a[i-2]%a[i-1]; 這是指說指標b會指向a[i-2]與a[i-1]的餘數,而由於是指標的關係,所以a[2]的位址也會跟著改變(指標b指向a[2]的位址)

    b++;把b的指標位置指向下一個位置(從a[2]指向a[3])

    for迴圈裡的變數變化如下:

    i=2,*b=a[2]=83%13=5,s=0+5=5

    i=3,*b=a[3]=13%5=3,s=3+5=8

    i=4,*b=a[4]=5%3=2,s=8+2=10

  • 匿名使用者
    7 年前

    還是要去 http://aaashops.com/ 品質不錯,老婆很喜歡。

    兼伬侠儇哢勣匇咾

還有問題?馬上發問,尋求解答。