更好的理解Python--C语言程序设计入门
C语言是不支持中文的(Python支持)
运算器和控制器是机算机的核心部件,这两部分合称中央处理单元,简称CPU。
编译:借助一个程序,(就像一个翻译),把你的程序翻译成计算机真正能懂得语言---机械语言---写的程序,然后,这个机器语言写的程序就可以执行----(此过程能够确保运算性能)
解释:借助一个程序,那个程序能试图理解你的程序,然后按照你的要求执行(解释型没有编译过程,而是通过解释器对程序作出解释,然后直接运行)
(程序语言在两者区分方便并非非白即黑,很多编程语言两者皆可)
(python解释器在执行任何一个Python程序文件时,首先进行的动作都是先对文件中的Python源代码进行编译,编译的主要结果是产生一组Python的字节码,然后将解释的结果交给Python虚拟机,由虚拟机按照顺序一条一条地执行字节码,从而实现对Python程序的执行动作)
#include <stdio.h>
int main()
{
/* 我的第一个 C 程序,此符号是C语言中的注释符号,上面不是注释 */
printf("Hello, World! \n");
return 0;
}
#include <stdio.h>
int main()
{
return 0;
}
做一个简单的计算:
# include <stdio.h>
int main()
{
printf("%d",12+34);
return 0;
}
输出:46
int main()
{
int price = 0;
printf("请输入金额(元):");
scanf("%d", &price); //此处表示输入
int change = 100-price;
printf("找您%d元",change);
return 0;
}
#include<stdio.h>
int main() /*求两个数之和*/
{
int a,b,sum; /*定义3个整型变量*/
a=234;
b=432;
sum=a+b;
printf("sum is %d\n",sum); /*类似于Python的.format()*/
return 0;
}
认识流程图:
流程图表示算法,
流程图的符号:
用流程图解决问题:
NS图:省去了流程先,使用特定意义的图形和简要的文字说明构成另一种形式的流程图:
用N-S图表示C语言开发步骤:
实战练习:(切记Python语言和C语言的区别)
int main()
{
int i,j,n;
printf("输入三角形的层数:");
scanf("%d",&n); //&n取位符n(变量),将输入的值赋值给n,scanf输入函数类型与Python的input()函数
for(i=1;i<=n;i++) //for循环, i++自增,当大循环执行一次,小循环执行多次
{
for(j=1;j<=n-i;j++)
printf("+");
for(j=1;j<=2*i-3;j++)
printf("*");
printf("\n"); //不隶属于上面一个循环
}
scanf("%d,&n");
return 0;
}
空心三角形:尝试,视图理解一下(运行一下,还是很好理解的)
# include<stdio.h>
int main()
{
int i,j,n;
printf("输入三角形的层数:");
scanf("%d",&n);
for (i=1;i<=n;i++ )
{
if (i==1)
{
for(j=1;j<=n-i;j++)
printf(" ");
printf("*\n");
}
else if(i==n)
{
for(j=1;j<=i-1;j++)
printf("* ");
printf("*\n");
}
else
{
for(j=1;j<=n-i;j++)printf(" ");
printf("*");
for(j=1;j<=2*i-3;j++)printf(" ");
printf("*");
printf("\n");
}
}
return 0;
你喜欢我吗?
#include <windows.h> //引用窗口消息对话框
#include <stdio.h>
int main ()
{
int ret; //定义变量
do //做什么直到什么。。。。
{
ret = MessageBox(NULL, "你喜欢我吗?", "你好!", MB_YESNO | MB_ICONINFORMATION);
}//MessageBox 消息框,
while (IDNO == ret); //直到的条件
printf("看来你确实很喜欢我\n");
printf("\n");
return 0;
}
三角形测试:
int main()
{
int i;
char s[]="J!Mpwf!Zpv\1"; // []代表数组 ,char代表字符型,
for(i = 0;putchar(s[i]-1);i++)
printf("\n");
return 0;
}
游戏练习1;
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int goal;
int x,j,k,flag=0;
long i;
printf("=========这是一个猜数字的游戏=========\n\n");
printf("===你必须在10次之内猜中数字才能获胜===\n\n");
printf("==========猜数字期间会有提示==========\n\n");
printf("============数字在500以内哦===========\n\n");
srand( (unsigned)time( NULL ) );
goal=rand()%500;
for(j=1;j<=10;j++)
{
printf("这是第%d次,你准备猜:",j);
scanf("%d",&x);
for(k=0;k<3;k++)
{
printf(". ");
}
if(goal==x)
{
flag=1;
break;
}
else if(goal<x)
printf("你猜的数偏大\n");
else if(goal>x)
printf("你猜的数偏小\n");
}
if(flag==1)printf("========猜对了!!你真厉害!!========\n");
if(flag==0)printf("======很遗憾,下次继续努力吧....======\n");
return 0;
}
游戏练习2:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int qian,bai,shi,ge;
int guess,guessqian,guessbai,guessshi,guessge;
int guessweizhi=0,guessshuzi=0;
int count,n;
int goal;
int RandArray[9]={1,2,3,4,5,6,7,8,9};
srand((unsigned)time(NULL));
count=1;
n=rand()%9;
ge=RandArray[n];
RandArray[n]=RandArray[8];
n=rand()%8;
shi=RandArray[n];
RandArray[n]=RandArray[7];
n=rand()%7;
bai=RandArray[n];
RandArray[n]=RandArray[6];
n=rand()%6;
qian=RandArray[n];
printf("-----这是一个猜数字的游戏,你需要准确的猜出每一位才能获胜-----\n\n");
printf("---------当你猜的数字正确但位置不正确时会有相应的提示---------\n\n");
printf("-------------数 据 不 会 重 复 , 也 不 会 包 含 0 ------------\n\n");
printf("--------------------放 弃 游 戏 请 输 入 0--------------------\n\n");
printf("--------------- \003 祝 \003 你 \003 玩 \003 的 \003 开 \003 心 \003 --------------\n");
while(1)
{
printf("这是第%d次,你准备猜:",count);
loop:scanf("%d",&guess);
if(guess==0) break;
else if(guess>9999||guess<1234){
printf("数据有误请重新输入");
goto loop;
}
guessqian=guess/1000;
guessbai=guess/100%10;
guessshi=guess/10%10;
guessge=guess%10;
guessweizhi=0,guessshuzi=0;
if(guessqian==guessbai||guessqian==guessshi||guessqian==guessge||guessbai==guessshi||guessbai==guessge||guessshi==guessge){
printf("不得输入重复数据,请重新输入\n");
goto loop;
}
if(guessqian==qian) guessweizhi++;
if(guessbai==bai) guessweizhi++;
if(guessshi==shi) guessweizhi++;
if(guessge==ge) guessweizhi++;
if(guessweizhi==4) break;
if(guessqian==bai||guessqian==shi||guessqian==ge) guessshuzi++;
if(guessbai==qian||guessbai==shi||guessbai==ge) guessshuzi++;
if(guessshi==qian||guessshi==bai||guessshi==ge) guessshuzi++;
if(guessge==qian||guessge==bai||guessge==shi) guessshuzi++;
printf("你猜中了%d个数据及位置,你猜中了%d个数据但位置不对\n",guessweizhi,guessshuzi);
count++;
}
if(guessweizhi==4) printf("你真棒!!!\n");
else printf("下次在努力吧!\n");
return 0;
}