关于C语言的请教
本帖最后由 iptton 于 2010-4-15 17:12 编辑我是刚开始学C语言的~~这里是有一道题是要求输出
*
***
*****
*******
*****
***
*
这个图案~~下面是我自己写的一个代码~~可能不严谨兼垃圾吧~~大家别急着扔砖头~~给我说说哪里出错了~~或者提供我一个更好的代码~~谢谢大家
#include<stdio.h>
#include<math.h>
void main()
{
int line,seat_1,seat_2,k,j;
for(line=1;line<=7;line++)
{
k=abs((line-4)*(line-4));
j=7-2*k;
for(seat_1=1;seat_1<=k;seat_1++) printf("");
for(seat_2=1;seat_2<=j;seat_1++) printf("*");
printf("\n");
}
}
算是计算题吧?计算下规律就可以算对了。。
#include<stdio.h>
#include<math.h>
void printStart(int line);
void main()
{
printStart(7);
}
void printStart(int line){
int mid=line/2+1;
int numOfStar,numOfSpace;
for(int i=0;i<line;++i){
if(i<mid){
numOfSpace=mid-i-1;
numOfStar=i*2+1;
}else{
numOfSpace=i-mid+1;
numOfStar=(line-i)*2-1;
}
for(int j=0;j<numOfSpace;++j)printf(" ");
for(int k=0;k<numOfStar;++k)printf("*");
printf("\n");
}
}
本帖最后由 iptton 于 2010-4-17 07:51 编辑
刚好今天有空,计算一下...orz
#include<stdio.h>
#include<math.h>
void printStar(int line);
void main()
{
printStart(7);
}
void printStar(int line){
int mid=line/2;
int numOfStar,numOfSpace;
for(int i=0;i<line;++i){
numOfSpace=abs(mid-i);
numOfStar=line-abs((mid-i)*2);
for(int j=0;j<numOfSpace;++j)printf(" ");
for(int k=0;k<numOfStar;++k)printf("*");
printf("\n");
}
}
谢谢楼上的~~我先研究研究`` 哇。看起来就很复杂。。我才开始学习C语言。。好好请教最近听说有个免费的讲座时介绍Linux知识的,他们邀请了著名的Linux讲师分析嵌入式知识。可以去听下哦。。是免费的在广州市越秀区东风西路140号东方金融大厦610。。大家好好加油啦
页:
[1]