評價: 0 回應: 1 閱覽: 81
置頂

字串的問題

小弟對於字串這邊有很大的疑問
假設我今天令
char test[5][5]
scanf "%s",test[0]
輸入test
這時候資料裡面應該是

  0 1 2 3 4
0 t e s t
1
2
3
4

對吧?

但是我網上看到有人的程式碼是

#include <stdio.h>

char stu[10][10];
int n;
int sch[110];

int main() {
    int i, k, t;
    scanf("%d", &n);
    for (i = 0; i < n; i++) {
        scanf("%s %d %d %c %c %d", stu[i], &stu[i][0], &stu[i][1],
&stu[i][2], &stu[i][3], &t);
        stu[i][4] = t + 1;
    }
    for (i = 0; i < n; i++) {
        if (stu[i][0] > 80 && stu[i][4] > 1) sch[i] += 8000;
        if (stu[i][0] > 85 && stu[i][1] > 80) sch[i] += 4000;
        if (stu[i][0] > 90) sch[i] += 2000;
        if (stu[i][0] > 85 && stu[i][3] == 'Y') sch[i] += 1000;
        if (stu[i][1] > 80 && stu[i][2] == 'Y') sch[i] += 850;
    }

在這個程式裡面,他的stu[i][0]

不就指向當初輸入的stu[i]的第一個字母嗎?

但是這邊程式也沒出錯

希望有沒有人能夠解釋一下

 

熱門回應

輸入的名字是存在stu[i] + 5

輸入的數字(成績)必不會大於255(0xFF)

因此存在char不會有問題

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言