#include
int main()
{
int i,n,k;
char op1,op;
scanf("%d",&n);
getchar();
scanf("%c",&op);
printf("%c",op); /*明明能输出 op*/
int a[200];
for(i=1;i<=200;i++)
a[i]=2*i-1;
int sum=0,sum1=0;
for(i=1;i<=10;i++){
sum=sum+a[i];
sum1=2*sum;
if(sum1-1>=n){
k=i-1;
break;
}
}
int j,g,h,count=0;
for(i=k;i>=1;i--)
{
for(j=k-i;j>0;j--)
printf(" ");
for(j=1;j<=2*i-1;j++){
printf("%c",op); /*到循环里头为啥又输不出来*/
count++;
}
printf("\n");
}
for(i=1;i<=k-1;i++){
for(j=k-1-i;j>0;j--)
printf(" ");
for(j=1;j<=2*i+1;j++){
printf("%c",op); /*这里也没办法输出 op*/
count++;
}
printf("\n");
}
printf("%d",n-count);
return 0;
}

c语言 打印沙漏,里面没蝙蝠,进来看看。为啥循环中的 op 输不出来
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 智者知已应修善业 2020-02-07 13:02关注
能打印沙漏,不知说虾米
int i, n, k; char op1, op; scanf_s("%d", &n); getchar(); scanf_s("%c", &op); printf_s("%c", op); /*明明能输出 op*/ int a[200]; for (i = 1; i <= 200; i++) a[i] = 2 * i - 1; int sum = 0, sum1 = 0; for (i = 1; i <= 10; i++){ sum = sum + a[i]; sum1 = 2 * sum; if (sum1 - 1 >= n){ k = i - 1; break; } } int j, g, h, count = 0; for (i = k; i >= 1; i--) { for (j = k - i; j>0; j--) printf_s(" "); for (j = 1; j <= 2 * i - 1; j++){ printf_s("%c", op); /*到循环里头为啥又输不出来*/ count++; } printf_s("\n"); } for (i = 1; i <= k - 1; i++){ for (j = k - 1 - i; j>0; j--) printf_s(" "); for (j = 1; j <= 2 * i + 1; j++){ printf_s("%c", op); /*这里也没办法输出 op*/ count++; } printf_s("\n"); } printf_s("%d", n - count);
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报