C语言的for循环中省略赋值语句对结果是否有影响?
我尝试着在终端上打印菱形,电脑系统是基于ubuntu12.04改的elementary os运行在VMware上。
当我在声明i,j的时候同时赋值,并省略了for循环中的第一个表达式时,打印不出菱形。
当我在声明i,j的时候不赋值,在for循环的第一个表达式才赋值时,又可以打印出菱形。
我想问,是否在for循环中赋初值对程序运行的结果有影响吗?
#include <stdio.h>
#include <math.h>
int diamond(int,char);
int main(void)
{
diamond(3,'*');
diamond(5,'+');
return 0;
}
int diamond(int n,char c)
{
if (n%2==0){
printf("请输入奇数");
}
else {
int middle = n/2+1;
int i,j;
for (i=1;i<=n;i++){
for (j=1;j<=n;j++){
if (i<=middle && j<=middle+(i-1) && j>=middle-(i-1))
printf("%c\t",c);
else if(i>middle && j<=middle+(n-i) && j>=middle-(n-i))
printf("%c\t",c);
else
printf("\t");
}
printf("\n");
}
}
return 0;
}
开飞机的猛男
10 years, 9 months ago