这一节我们将见到一些更加复杂的程序
当然,你不可能弄懂他们!
本节的目的在练习IDE的使用,并且对c的基本结构有一个更深的了解
你可以尝试去理解它,但是不要因为看不明白而负有任何心理压力
其中包含了太多我们还没有学的内容
我们先从预备章中的那个程序开始
还记得那个用来演示命令的程序吗
下面就是他的源代码
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
int main(int argc,char *argv[])
{
int i = 1;
srand(time(NULL));
if (argc == 1)
{
printf("hello!\n你还没有给我参数呢!\n");
return 0;
}
printf("你给了我%d个参数哦!\n他们分别是:\n", argc - 1);
for (;i<argc;printf("参数%d->%s\n", i, argv[i]), i++);
if (!strcmp("rand", argv[1]))
{
printf("你让我产生了随机数,它是%d\n", rand()%99);
}
return 0 ;
}
请按照1.1中的过程创建工程并编译
编译之后,你会在你的工程目录下发现增加了一个EXE文件,这就是我们编译出的程序
你完全可以使用命令提示符切换到该目录,然后使用这个程序
如果你手贱直接双击这个程序的话
你会发现一个黑框一闪而过,甚至连黑框都看不到
但是如果你在codeblocks下点击运行,程序到最后却运行得很好
这是为什么呢
在dos时代,计算机只能同时执行一个程序(dos是一个单任务系统,就是说一次只能干一件事)
你在dos下运行某个程序时,dos系统会将控制权完全交给这个程序
到程序结束时,程序会交回控制权,dos才能开始工作
因为dos系统并没有多窗口这种东西,所以dos和程序其实用的是一块显示区域,程序用完了dos接着用
至于cmd,这是微软最初为了兼容dos应用程序而开发的一个虚拟的dos,它的本质是一个程序
cmd启动你的程序后,直到程序完结束,cmd才能重新工作起来,程序结束后,会接着执行cmd这个程序。也就是说,cmd下启动的程序在结束后我们看到的并不是调用的程序的界面,而是cmd的界面
而你直接双击的话,程序会输出“没有给参数”一行字后就退出了,
程序退出的同时,一同关闭的还有窗口,我们显示在窗口上的文字自然也会随着窗口的关闭而消失
若想看到程序执行的结果,我们就需要让程序在退出之前停下来,怎么办?
别担心,我们后面就会讲到【我想你现在一定很想打我】
那么codeblocks中运行程序为什么可以看到结果?当让是codeblocks帮我们停下来了啊。
目前通过cmd或者codeblocks来执行这些程序就够了
下面的程序将a和b相加然后输出
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a=3;
int b=5;
int c=a+b;
printf("a+b=%d\n", c);
return 0;
}
你知道完数是个什么东西吗?
不知道?快去百度!
下面的程序可以将1000以内的所有完数求出
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
static int k[10];
int i, j, n, s;
for (j = 2; j < 1000; j++)
{
n = -1;
s = j;
for (i = 1; i < j; i++)
{
if ((j % i) == 0)
{
n++;
s = s - i;
k[n] = i;
}
}
if (0 == s)
{
printf("%d是一个完数", j);
for (i = 0; i < n; i++)
printf("%d,", k[i]);
printf("%d\n", k[n]);
}
}
return 0;
}
1000以内的完数只有三个
有人喜欢问c语言能够干嘛,还有人问c语言不能写窗口程序,能不能写出像样的软件
我只能说学好了啥都能干,操作系统都能搞定,何况运行在操作系统上的程序呢?
如果要开发图形窗口的程序,我们有很多库(库就是别人或你自己提前写好了的拥有某一特定功能的代码)可以选择。那都是以后的事情,我们到以后再说。这里就不给出程序了
本节就到这里,啥也没看懂?
没关系,慢慢来~~
请接着往下看
