建议你去看谭浩强的《C语言程序设计 》 =%ld" &n);while(i<=n)/*分号去掉{s=s*i;i++;}printf("%d =24 n &s);} 答案补充 printf("%d 那就太大了源程序如下:#include <stdio.h>void main(){int n &n);while(i<=n){s=s*i;i++;}printf("%d" i=1;scanf("%d" s=1 这里是取S的植而不是S的地址.} ||| #include <stdio.h>int main(){int n s);//去掉& &n);while(i<=n) //去掉分号{s=s*i;i++;}printf("%d" i=1;scanf("%d" s=1 #include <stdio.h>void main(){int n 如果是求10 20 30 的呢 求5的阶层还行 因为你的n是随机输入的 很有用的偶 ||| while(i<=n);把后面的分号";"去掉. ||| 你的s应定义为长整型 &s);输入4输出:4 =%ld" i=1;long s=1;scanf("%d" s);} 答案补充 你这里有许多语法错误比如 while后的括号不加分号;printf中的“s”先不加&等