不是这样的。主要原因是scanf只取了一个整数,但是留下了你输入的换行符,下一次打出name:提示之后gets立即就返回了这个换行符。你在scanf之后再加一个gets把这个换行符读进来扔掉就行了。
在 printf("%s'number: ",name[i]); 的 ' 前面加个 \