瑞星卡卡安全论坛

首页 » 技术交流区 » 系统软件 » 请版主给程序入门者一些建义!
很菜的菜青虫 - 2006-10-9 11:54:00
一直希望学编程,只要有信心学,再苦再累都不问题。就是怕没有前进的方向,请老鸟们带我们跨进这个门槛!
如果要学语言的话,初学都最适合学习那一种,给我们讲些基础的东西吧!
MacNab - 2006-10-9 17:48:00
如果你只能写三行程序,但让你在在字符界面下打印一个9层的金字塔图案,你会怎么做.


附件: 7645232006109174217.bmp
很菜的菜青虫 - 2006-10-10 13:34:00
妈呀,问题是我连一种语言都不会啊,你给给个建议,学那一种语言好,谢谢了!等我有了方向,我就来解你的题。
救命病毒来啦 - 2006-10-10 23:36:00
我也不会程序语言,我觉得既是会了,用处不是很大,因为个人认为,一个程序不光懂得编程语言,更主要是实现程序的算法。

那个金字塔我随便说说,我是真的一个都不会
for(a=1;a<=9;a++)  //输出1~9
  for(b=0;b<a;b++) //决定每行打印的个数
      printf(a)    //打印啦。

这里省去了变量及主函数(main)的声明。
还有因为我不会所以我写的只是思路不是实际可编译通过的语句。
最后,因为我不会所以不能对字符的显示位置进行定位。
但是我觉得定位方法也是可以用规律来描述的。

我胡说拉,请大家指教^^。
救命病毒来啦 - 2006-10-11 4:34:00
晚上睡不着,想了一个显示位置的关系。
每行从第一个显示开始到本行显示结束的显示数目按奇数排列的(包括空格):1—9行分别用了1,3,5,7—17。
因此每行的第一个显示位置固定通过这个方程解释:最大行数-目标行数+1。每行的每个字符显示位置是前一个字符加上空格是2。
程序概要如下:

for(a=1;a<=9;a++) //输出1~9
{
c=9-a+1;        //初始化第一输出点的位置
for(b=0;b<a;b++)  //决定每行打印的个数
{
按照c的取值作为第一字符点输出变量a的值;//这个语句我不会。
c=c+2;            //决定本行下一个字符输出的位置
}
printf("\n");    //不知道用不用这句话,结束本行,换行作用
}

这里省去了变量及主函数(main)的声明。
还有因为我不会所以我写的只是思路不是实际可编译通过的语句。

这个问题提出者说可以3行解决问题,希望能贴出正确答案,我没有
学过,也只能想到这么多了。

谢谢大家,请大家指教^^
卋道變了 - 2006-10-11 5:23:00
本人是个对电脑很白痴的人,由于极度喜欢电脑,现在想在此找恩师一名.
不求别的,可以教我一些基本的电脑应用知识就可以了...
希望哪位不嫌弃我的朋友收下我,呵呵等你们来内蒙古旅游小弟请你们吃烤全羊.....
有愿意交我的高手加我QQ 308358148 或打我手机 15904721786
在下再次谢谢了!!!
很菜的菜青虫 - 2006-10-12 15:50:00
【回复“救命病毒来啦”的帖子】
兄弟,可以详细解释一下吗?  先谢谢了
for(a=1;a<=9;a++)
救命病毒来啦 - 2006-10-13 11:07:00
引用:
【很菜的菜青虫的贴子】【回复“救命病毒来啦”的帖子】
兄弟,可以详细解释一下吗?  先谢谢了
for(a=1;a<=9;a++)
………………

确定每一行输入什么数字,例如最上是1,其次是2,最下是9
语句意思:
这是个for循环,当循环条件为真时,执行循环,并且改变循环条件变量,再次比较
a=1 最上是1
1<=9循环条件为真,执行该循环
a++ 意思就是变量a加1
一次循环结束后变量a值成为2(循环中没有其他语句改变变量a的情况下),在进行
比较,结果为真时再次循环,一直重复到9。等到a变为10的时候10<=9条件为假,则
循环结束。

不知道我说的明白不明白,对不对。请大家指教^^
shasinicaoni - 2006-10-14 9:42:00
人家说3行程序啊
救命病毒来啦 - 2006-10-14 10:33:00
引用:
【shasinicaoni的贴子】人家说3行程序啊
………………

终于看到挑刺的了,请看清楚每个帖子!偶都说了偶不会!
      说3行的那个家伙从此消失了,也没回来说出个所以然来!
      各位高人也没给个回复,苦闷阿。
      你这么说就是你有办法了。求教啊。

别告诉我做个先在别处做好图像文件,然后用程序调用输出


其实如果格式输出能在printf中直接定义那么3行也可以

要不就主程序3行,附加一个自定义函数。
很菜的菜青虫 - 2006-10-15 10:49:00
虽然我不会,但是我觉得你的语句有问题,就拿来这句来说:
printf("\n");
首先,你没有指明输出数值的类型,再者就是\n  是用来输出结束后换行的啊,
西门修罗 - 2006-10-15 16:48:00
1楼的那个金子塔你是用什么编写的是C 还是C++?
救命病毒来啦 - 2006-10-16 9:35:00
呵呵,谢谢大家指教,c还是c++啊
这大概是tc2.0的格式,但是具体细节都没有
本来应该查书,写出能运行通过的程序
无奈,不在家,买不到中文书,所以胡写啦

关于青菜虫提到的这句话printf("\n");
本来的目的就是在小循环完成后换行,并不输出任何东西^^
但是我不保证语法结构正确,呵呵,谢谢大家指教

很菜的菜青虫 - 2006-10-16 14:33:00
【回复“救命病毒来啦”的帖子】
首先,我是菜青虫,,不是青菜虫。
其次我认真看了你4楼的程序,里面就最后一句是输出的,其它的全是循环语句,先不说你语法正不正确,程序完不完整,最重要的这程序想要达到的目的是打印出数值a你没有做到!
很菜的菜青虫 - 2006-10-16 16:58:00
我用我现在所学的知识写了段伪代码,和流程图,但不会确定输出字符的位置,有会的请指教一下啊!
s1、a=1;      //a是要输出的字符,b是输出字符的个数
s2、b=1
s3、打印 “a ”    //a值后面有一个空格
s4、b=b+1
s5、如果b<a,那么回到 s3    //循环打印a次a
s6、打印“/n”          //换行
s7、a=a+1              //a值加一 
s8、如果a<9,那么回到s2    //到9停止

附件: 76157820061016190014.jpg
救命病毒来啦 - 2006-10-16 22:16:00
引用:
【很菜的菜青虫的贴子】【回复“救命病毒来啦”的帖子】
首先,我是菜青虫,,不是青菜虫。
其次我认真看了你4楼的程序,里面就最后一句是输出的,其它的全是循环语句,先不说你语法正不正确,程序完不完整,最重要的这程序想要达到的目的是打印出数值a你没有做到!

………………

大哥,哎呀大哥啊,对不起,你的名字我叫错了。
但是你真看了我四楼的帖子了么?
你注意到这句话么
“按照c的取值作为第一字符点输出变量a的值;//这个语句我不会。”
这个就是输出语句阿
写明白点就是:pintf(按照c的值进行向右移位,输出变量a当时的取值);
算了,有时间我写段程序出来做个了结
救命病毒来啦 - 2006-10-17 0:39:00
下边是程序代码,已经在c#(2003)版调试通过
操作系统WindowsXP SP2 中文
================================================
static void Main(string[] args)
{
int a,b,c,d;
for(a=1;a<=9;a++)
{
for(c=9-a+1;c>1;c--)  //这个循环因为不会在输出语句中控制位置,
{                      //因此用来控制起始间距。
Console.Write(" ");
}
for(b=0;b<a;b++)
{
for(d=1;d>0;d--)      //这个循环因为不会在输出语句中控制位置,
{                      //因此用来控制每个字符之间的间距。
Console.Write(" ");
}
Console.Write("{0}",a);
}
Console.Write("\n");  //一行结束后起到换行作用。
}
=============================================================
这样金字塔在屏幕整体向右多移一个字符。
如果这两句对调(如下):
Console.Write("{0}",a);
for(d=1;d>0;d--)      //这个循环因为不会在输出语句中控制位置,
{                      //因此用来控制每个字符之间的间距。
Console.Write(" ");
}
则金字塔排列紧贴屏幕边缘,但是每行最后多输出一个字符
以上原因正是我不会在屏幕输出语句中定位产生的缺陷,如果
按照我原来的想法(见前几贴),在屏幕输出语句中控制就可
以避免了,请高手指教^^



附件: 7304772006101703116.jpg
救命病毒来啦 - 2006-10-17 0:43:00
最后说:那个人说3行就能实现的谁能给我个答案阿,让我们才鸟能够安心。
谢谢大家。
救命病毒来啦 - 2006-10-17 0:54:00
哎,菜青虫,没想到这是第二页了,第一页最后有我对写错你名字的
道歉贴阿,真是对不起,不要咬我啊。
很菜的菜青虫 - 2006-10-17 11:18:00
呵,没关系,反正咋叫都是个菜虫,不过说实在的,认识你这个朋友很高兴。

Console.Write("{0}",a);这句和
printf("%d",a)有什么不同啊?

还有就是可以告诉我在什么地方可以下得到C语言的安装程序吗?
1
查看完整版本: 请版主给程序入门者一些建义!