void?main()
{
int?k?=?0;
char?ch,?a[10],?*s[10]?=?{?"123","231","312","321"?};//定義字符?字符串?字符串數組變量
while?((ch?=?getchar())?!=?'\n'?&&?k?<?9)//循環讀取字符?先將讀取的字符放入ch變量?然後再判斷是否不是換行?如果字符不是換行?而且讀取的字符數小於9?就繼續循環
if?(ch?>=?'5'?&&?ch?<=?'8')//如果讀到到的字符在5至8之間
a[k++]?=?ch;//記錄該字符到a字符變量數組裏?k是字符串長度?k++?是先返回原始值?然後自加1?等效於?a[k]=ch;k=k+1;
a[k]?=?'\0';//將a字符串後面放上結束標記
for?(k?=?0;?a[k]?!=?'\0';?k++)//循環a字符串內容
printf("%s?",?s[('9'?-?a[k])?-?1]);//輸出?將字符9減去讀取的字符減1的值?當做s字符串數組的索引?
/*
輸出過程
比如輸入了?567?保存到了a字符串裏
那麽?循環如下
索引=9-5-1?=?3
看壹下?s字符串的3索引下是什麽值?是321?所以輸出?321
然後下壹次循環
索引=9-6-1?=?2
看壹下?s字符串的2索引下是什麽值?是312?所以輸出?312
然後下壹次循環
索引=9-7-1?=?1
看壹下?s字符串的1索引下是什麽值?是231?所以輸出?231
所以輸入567?後?結果是?321?312?231
*/
scanf("%d",?&k);
}#include?<stdio.h>
#include?<string.h>
struct?stud?{
char?name[10];
int?score[2];
}*p;
void?main()
{
int?i?=?0;
struct?stud?t[4]?=?{?{?"Lisa",98,87?},{?"Tom",89,86?},{?"John",68,79?},{?"Lili",94,90?}?};//定義結構體變量數組t?並初始化數據
p?=?t?+?2;//p結構指針等於t加2
printf("%s?\n",?t[0].name);//輸出名字結果
printf("%d\n",?p->score[0]?+?p->score[1]);//輸出兩個分數的和
printf("%d\n",?t[2].score[0]?+?t[2].score[1]);//這個與上面的結果相同?上面的是指針運算而已
scanf("%d",?&i);
}