建议对复杂循环中,变量(如用于计数的 i)的值的传递,深入讲解一下。请老师讲解一下
如本节课后题(做注释处):
#include <stdio.h>
int diamond(int n,char c);
int diamond(int n,char c)
{
int i,j,k; //****
if(n%2!=0)
{
for(k=n;k>0;k--)
{
for(i=1;i<=k;i++)//***此处对i初值赋为1
printf("\t");
//***下面的for循环中,i的值为多少??
for(j=2*i-1;j<=n;j++)
printf("%c\t",c);
printf("\n");
}
for(k=1;k<=n-2;k++)
{
for(i=k;i>=1;i--)
printf("\t");
for(j=n-2*k;j>0;j--)
{
printf("%c\t",c);
}
printf("\n");
}
}
else
printf("ERROR!");
}
int main(void)
{
int n;
char c;
printf("Please Input One Num and One Char [ex:5,*] :");
scanf("%d,%c",&n,&c);
diamond(n,c);
getch();
return 0;
}算了,太乱了。留言板不支持换行!
嗯,留言板不支持换行是一个挺严重的问题。谢谢你的提醒,我用一个quick and dirty hack让它支持换行了,等以后有时间再改得好看点。 至于你提的问题,似乎不是个特别的问题。i是一个变量,给它赋值就存起来,下次取就取上次存的值,i在前一个循环中用过了,在后一个循环中取前一个循环结束时的值,我认为不需要特别说明。而且上一节给出过类似的例子: for (i = 2; i < n; i++) if (n % i == 0) break; if (i == n) return 1;
真的很幸运找到您这个网站,对我学c来说有了莫大的帮助,只可惜我发现的有点晚.真的很感激您!
如果您有建设性意见,哪怕只是纠正一个错别字,也请不吝赐教,您留下的姓名和email将会出现在本书前言的致谢中。再次感谢您的宝贵意见!