首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有关问题求解!救

2012-05-02 
问题求解!!!急救。#include stdio.hvoid main(){int i,j,k,l,t,nprintf(请输入n的值:)/*n的值为奇数(

问题求解!!!急救。
#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++)

的结束条件永远也不会满足,所以你最好再循环中再申请一变量来保存该值。

热点排行