【发布时间】:2016-03-13 02:49:30
【问题描述】:
for 循环不会执行循环体中的最后一条语句,如果它是最后一次迭代(或只有一次迭代)。并且即使它只包含 printf() 语句并且还跳过函数体中接下来的语句也无法正常工作。这是代码:
void build()
{
int i;
system("clear");
printf("\nBuild the table");
printf("\n");
printf("\nMaximum number of entries ------> 20");
printf("\nHow many do u want------>");
scanf("%d",&num);
printf("\nEnter the following items\n");
for(i=0;i<num;i++)
{
printf("\nName ");
scanf("%s",emp[i].name);
printf("\nCode");
scanf("%ld",&emp[i].code);
printf("\nDesignation");
scanf("%s",emp[i].designation);
printf("\nAge");
scanf("%d",&emp[i].age);
printf("\nYears of experience");
scanf("%d",&emp[i].exp);
printf("\nHello everyone");
}
for(i=0;i<num;i++)
{
printf("\n%s",emp[i].name);
printf("\n%ld",emp[i].code);
printf("\n%s",emp[i].designation);
printf("\n%d",emp[i].age);
printf("\n%d",emp[i].exp);
}
printf("\nGoing to main menu");
}
struct employee
{
char name[20];
long int code;
char designation[20];
int exp,age;
};
struct employee emp[max];
我在函数中的 for 循环和上面都面临同样的问题是结构声明是 max=20;
【问题讨论】:
-
在行尾添加换行符,而不是在开头添加换行符,它将起作用 - 或使用 fflush(stdout) 强制输出您缺少的输出
-
Soren,这对他们中的任何一个都不起作用。