问题求解!!!急救。
#include <stdio.h>
void main()
{
int i,j,k,l,t,n;
printf("请输入n的值:");/*n的值为奇数(上下关于中间对称)*/
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i<=(n+1)/2)
i=i;
else
i=n+1-i;/*当为下半部时,按上半部对称输出*/
t=2*i-1;/*t为*个数*/
for(j=1;j<=(n-t)/2;j++)/*先输出一半空格*/
printf(" ");
for(k=1;k<=t;k++)/*输出t个**/
printf("*");
for(l=1;l<=(n-t)/2;l++)/*再输出剩下的一半空格*/
printf(" ");
printf("\n");/*每行输完换行*/
}
}
此程序那里有错误?求解!
[解决办法]
- C/C++ code
#include <stdio.h>void main(){ int i,j,k,l,t,n; printf("请输入n的值:"); /*n的值为奇数(上下关于中间对称)*/ scanf("%d",&n); for(i=1;i<=n;i++) { if(i<=(n+1)/2) i=i; else i=n+1-i; /*当为下半部时,按上半部对称输出*/ t=2*i-1; /*t为*个数*/ for(j=1;j<=(n-t)/2;j++) /*先输出一半空格*/ printf(" "); for(k=1;k<=t;k++) /*输出t个**/ printf("*"); for(l=1;l<=(n-t)/2;l++) /*再输出剩下的一半空格*/ printf(" "); printf("\n"); /*每行输完换行*/ }}
[解决办法]
VC6
- C/C++ code
int main(){ /*希*奇*/ return 0;}
[解决办法]
因为
i=n+1-i; /*当为下半部时,按上半部对称输出*/
这一句会修改i的值,使
for(i=1;i<=n;i++)
的结束条件永远也不会满足,所以你最好再循环中再申请一变量来保存该值。