【发布时间】:2014-07-07 18:10:13
【问题描述】:
给定一个整数 N,对于 N 末尾的每个数字,打印一行星星,其中星星的数量等于该数字 C++
示例输入: 2863
示例输出:
***
******
********
**
我的代码在 12345 等输入中工作。但不能在 2863 中工作!我不知道为什么以及如何编辑我的代码来处理这个问题!
#include <stdio.h>
int main()
{
int b,d,j=0,num,num1,length=0,length1,x[100];
float a,c;
scanf("%d",&num);
num1=num;
while(num!=0){
num/=10;
length++;
}
length1=length;
for(int i=0; length!=0; i++){
a=(float)num1/10;
b=num1/10;
c=a-(float)b;
d=c*10;
x[i]=d;
length--;
num1=b;printf("%d\n",d);
}
while(length1!=0){
while(x[j]!=0){
printf("*");
x[j]--;
}
length1--;
j++;
printf("\n");
}
}
【问题讨论】:
-
示例输出:*** ****** ******** **
-
你了解
%(余数)运算符吗? -
是的.. %10 返回数字的最后一位,但我怎样才能返回没有最后一位的原始数字?!
-
使用
/ 10,就像您的代码已经拥有一样。