说实话,我感觉这小节没什么可以看的,于是我准备把书中的例子描述 具体代码化 (- -!)
题目一 1*2*3*4*5 求结果
程序代码开始————————————————————————————————————————————————————————————————
#include <stdio.h>
int main (void)
{
int a=1,b=2;
while(b<=5)
//当b<=5时,条件为真,执行花括号里的步骤,当条件为假,跳出,执行下一步,即是 printf函数。
{
a=a*b;
b=++b;
/*++b 为自增,b自己加1,然后赋值给对象。与b++不同,b++是 将b赋值给对象,然后自己加1,所以无论b++还是++b,最后b的数值是一样的,但是赋值对象的数值是不一样的*/
}
printf("1*2*3*4*5=%d\n",a);
printf("%d",b);
getch();
return 0;
}
程序代码结束———————————————————————————————————————————————————————————————————
PS:其实我第一遍打代码,后我用Code::Blocks编译了一遍,发现语意错误。。我连while怎么用忘了,看来以后真的每天打代码。这东西忘得太快。。。
题目二 1*3*5*7*9*11
——————————————————————————————————————————————————————————————————————————
#include<stdio.h>
int main (void)
{
int a=1,b=3;
while(b<=11)
{
a=a*b;
b=b+2;
}
printf ("1*3*5*7*9*11=%d\n",a);
return 0;
}
————————————————————————————————————————————————————————————————————————
PS;shit,竟然又没有一次打成,这回是语意思考不严谨,我直接将b设成 : int b=a+2;while(b<=){a=a*b}然后错误。。。
得到的教训是:b=a+2;只执行一次,while中的循环体{a=a*b}里的b在循环体里与上面的b=a+2;无关,永远保存数值为3.形成死循环。
具体怎么说我也不明白,但是死记住这一个勉强理解为规则好了,循环体里的变量只有循环体里的变化
————————————————————————————————————————————————————————————————————————————————
50个学生,输出他们之中80分以上的学号和成绩
#include<stdio.h>
int main()
{
int i,g[50],n[50];
i=0;//下标要从0开始的
while(i<50)//最大值到49,不然会越界的
{
scanf("%d,%d",&g[i],&n[i]);//输入放在里面
if(g[i]>=80)
printf("%d,%d\n",n[i],g[i]);//这里少了分号,输出不用取地址了
i=i+1;
}
return 0;
}
这个是百度了的,我也想了,但是我不知道怎么将学号和成绩关联,一一对应,于是百度了,发现也只能靠人工对应输入。fuck!!
---------------------------------------------------------------------------------------------------------————————————————————————————————————————————————
判定2000-2500年中的闰年
闰年条件,能被四整除,但不能被100整除,或者能被100整除,又能被400整除。
#include<stdio.h>
int main (void)
{
int a=2000;
while(a<=2500)
{
if(
(a%4==0&&a%100!=0)
||
(a%100==0&&a%400==0)
)
printf("闰年是%d\n",a);
a++;
}
return 0;
}
________________________________________________________________________________________________
#include<stdio.h> int main (void)
{
//求1-1/2+1/3-1/4.....-1/100
float a=1;
float b=2;
while (b<=100)
{
a=a-1/b;
b++;
a=a+1/b;
b++;
}
a=a-1.0/101.0;
printf ("最终结果为%f\n",a);
return 0;
}
_________________________________________________________________________________________________________________
感悟:两个int 进行计算 结果类型必然似乎 int 1/2=0.5 整数直接为0了 ,没有小数,当计算出现浮点数值,记得要该声明类型,和对应的表示类型,并且到最后多加了一个1/101所以要减去一个1/101才行
同样 要打1.0/101.0 否则同样整数为0 不能执行
U盘是对晶圆的切割 随着工艺的进步 切割越来越精细 但是一刀下去总是分两分的
__________________________________________________________________________________________________________
有人帮我简化了程序
#include<stdi.h>
int main (void)
{
float a=0,b=1;
while(b<=100)
{
a=a+1/b;
b++;
a=a-1/b;
b++;
}
printf("最后结果是%d\n",a);
return 0;
}
#include<stdio.h>
int main (void)
{
int i=2,n;
float y;
scanf("%d",&n);
while(i<n-1)
{
y=n%i;
if(y==0) printf("此数不是素数\n");
else i++;
y=n%i;
if(y!=0) printf("此数是素数");
getch();
}
}
这是C语言吧 :乌鸦bu黑 回复的 感谢它
____________________________________________________________________________________________________其实也可以,在家加入一个变量,利用求余 设条件是否等于0,输出 \n,将原本的\n去掉,不让其每一次输出。
具体代码
#include<stdio.h>
int main (void)
{
int a=2000,i=0;
while(a<=2500)
{
if(
a%4==0&&a%100!=0
||
a%100==0&&a%400==0
)
printf("闰年是%d ",a);
else printf("%d不是闰年 ",a);
i++;
if(i%4==0) printf("\n");
a++;
}
return 0;
}
再加上点就好了,if(i%4==0) printf("\n");4个显示一次,就能显示全了
_____________________________________________________________________________________________