(c基础)上课笔记 12.13

  • 类型转化

5/3=1
5/3=1.000000
5.000000/3.000000=1.666667
5.000000/3=1.666667
----隐式转化:当赋值号两边类型不同时,自动转化为精度比较高的类型。
int sum=i/j;
----显示转化:强制类型转化,不会改变变量的类型,只做临时一次转化(float只转化了 i)
float sum1=(float)i/j;

  • 位运算符

(针对二进制数:&位与,|位或,~位非,^异或,<<左移,>>右移)
----&(位与 都为真才为真)讲十进制数,八进制数或十六进制数转化为二进制数进行位与
----|(位或 有一为真则为真)讲十进制数,八进制数或十六进制数转化为二进制数进行位或
----~(位非 每位取反) 计算机是补码存储,原码输出。可以简单理解记忆为 该数的相反数减一
----^ (按位异或 对应位不相同则为一)
----<< (左移)>>(右移)

  • 赋值操作符

(=,+=,-=,*=,/=,%=,&=,|=,<<=,>>=)

  • 逻辑运算符和条件运算符

----&& (如果a++j a++ ----?: (条件运算符) 表达式1?表达式2:表达式3 若表达式1为真,则执行表达式2;否则执行表达式3;。

  • 运算符优先级

----括号成员第一,全体单目第二,乘除余地三,加减第四,位移第五,关系六,等与不等第七,位与,异或和位或第八九十,逻辑或和逻辑与十一十二,条件条件高于赋值,逗号运算符最低

  • c语言的三大结构

顺序结构
分支结构

----if
----循环结构

*###作业

  1. 用while循环实现字母三角形

include

include

int main(int argc,char *argv)
{
int i,j,n;
char string='A';
while(1)
{
printf(" 请输入想要金字塔的高度\n");
printf(" 输入范围在(1-25)\n");
printf(" 输入'0'可以退出:");
scanf("%d",&n);
if(n>0&&n<26) ;
else if(n==0)
exit(0);
else
{
printf("非法输入!");
getch();
system("cls");
continue;
}
printf("\n");
i=0;
while(i {
j=n-i;
while(j>0)
{
printf(" ");
--j;
}
j=0;
while(j<((i+1)
2-1))
{
printf("%c",string+i);
++j;
}
++i;
printf("\n");
}
getch();system("cls");
}
return 0;
}

  1. for循环三角形

include

include

int main(int argc,char *argv)
{
int i,j,n;
char string='A';
for(;;)
{
printf(" 请输入想要金字塔的高度\n");
printf(" 输入范围在(1-25)\n");
printf(" 输入'0'可以退出:");
scanf("%d",&n);
if(n>0&&n<26) ;
else if(n==0)
exit(0);
else
{
printf("非法输入!");
getch();
system("cls");
continue;
}
printf("\n");
for(i=0;i {
for(j=n-i;j>0;j--)
printf(" ");
for(j=0;j<((i+1)
2-1);j++)
printf("%c",string+i);
printf("\n");
}
getch();system("cls");
}
return 0;
}

  1. 模拟电子时钟

include

include

int H,F,s=0;
void time(int h,int f)
{
int i;
while(1)
{
if(s==60)
{
++f;s=0;
}
if(f==60)
{
++h;f=0;
}
if(h==24)
{
h=0;f=0;s=0;
}
Sleep(250);
system("cls");
printf("\t\t====================\n");

printf("\t\t=     %.2d %.2d %.2d     =\n",h,f,s);

printf("\t\t====================\n");

Sleep(250);
system("cls");
printf("\t\t====================\n");

printf("\t\t=     %.2d:%.2d:%.2d     =\n",h,f,s);

printf("\t\t====================\n");

Sleep(250);
system("cls");
printf("\t\t====================\n");

printf("\t\t=     %.2d %.2d %.2d     =\n",h,f,s);

printf("\t\t====================\n");

Sleep(250);
++s;
}

}
int main(int argc,char **argv)
{
while(1)
{
printf("模拟时钟初始化!请输入当前时间(24小时制)\n");
printf("(输入格式为12点12分)\n");
scanf("%d点%d分",&H,&F);
if((H>=0&&H<=23)&&(F>=0&&F<=59))
break;
else
continue;
}
time(H,F);
return 0;
}

4.阶梯问题

int main(int argc,char **argv)
{
    int i,n=0;
    printf("阶梯问题所得的值:\n");
    for(i=100;i<=999;i++)
    {
    if((i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0))
    {
    printf("{ %d } ",i);
    ++n;
    }
    if(n==10) 
    printf("\n");
    }
    printf("\n总共找到%d个。\n\n",n);
    getch();
}```

你可能感兴趣的:((c基础)上课笔记 12.13)