循环的应用do while ,for ,while
作业(分离个个位数的)
c#include <stdio.h>
int main()
{
int a,b,c,d;//d是什么????
scanf("%d",&a);
b=a;
d=a;
for (int i = 0,c=100; i < 3; ++i)
{
b=d/c;//d的初值应该是a
d=d-b*c;//这里算的是一次循环后缩减一位(三位变两位)
c=c/10;//做缩减的所需
printf("%d\n",b);
}
return 0;
}
需要解决的就是如何判断输入的数字是几位数;
改良过后(c还有初值错误)
#include <stdio.h>
int main()
{
int a,b,c,d,n;//d是什么????N是几位数来判别
scanf("%d",&a);
b=a;
d=a;
for (int n = 0; a == 0 ; ++n)//来判断是几位数(++n是来判断是几位数)
{
a=a/10;
printf("现在是%d位数",n);
}
for (int i = 0,c=100; i < n; ++i)
{
b=d/c;//d的初值应该是a
d=d-b*c;//这里算的是一次循环后缩减一位(三位变两位)
c=c/10;//做缩减的所需
printf("%d\n",b);
}
return 0;
}#include <stdio.h>
int main()
{
int a,b,c,d,n;//d是什么????N是几位数来判别
scanf("%d",&a);
b=a;
d=a;
for (int n = 0; a == 0 ; ++n)//来判断是几位数(++n是来判断是几位数)
{
a=a/10;
printf("现在是%d位数",n);
}
for (int i = 0,c=100; i < n; ++i)
{
b=d/c;//d的初值应该是a
d=d-b*c;//这里算的是一次循环后缩减一位(三位变两位)
c=c/10;//做缩减的所需
printf("%d\n",b);
}
return 0;
}
完善(完善但是无法运行)
输入的数字需要我们大于0
#include <stdio.h>
int main()
{
int a,b,c,d,n;//d是什么????N是几位数来判别
scanf("%d",&a);
b=a;
d=a;
if (a>0)
{
for (int n = 0; a == 0 ; ++n)//来判断是几位数(++n是来判断是几位数)
{
a=a/10;//输出格式是整数逐步除会变为
}
for (int i = 0,c=100; i < n; ++i)
{
b=d/c;//d的初值应该是a
d=d-b*c;//这里算的是一次循环后缩减一位(三位变两位)
c=c/10;//做缩减的所需
printf("%d\n",b);
}
}
else//用于判断输入的数字是否大于0
printf("请输入大于0的数字!");
return 0;
}
最终的成品(pow解决问题)
#include<stdio.h>
#include<math.h>
int main()
{
int a,n=0,b,c,d,e;
scanf("%d",&a);
d=a;
if(a>0)//判断输入的值是正整数
{
do {
a=a/10;
n=n+1;
}
while (a>0);//不满足条件就停止
e=n;
for(int i = 0; i < e; ++i)
{
c=pow(10,n-1);//作为10的计数单位
b=d/c;//分离最高位
d=d-b*c;//去除最高位的数值
n=n-1; //
printf("%d\n",b);
}
}
else
{
printf("请输入正确正整数的值!");
}
return 0;
}
总结:
-
do while:while后面一定要加分号!
-
do while中,是满足条件为真就继续循环(最终的成品那里看得出来int类型输出无小数就出现了a输出0,a=0不满足a>0就退出输出n的值)
-
while中条件为真就继续循环
-
for循环中(给定初值;给定循环的条件;初值的变化情况)
在其中条件为真继续循环
字母的颠倒
#include<stdio.h>
int main()
{
char A,a,n,e;
n=-25;
e=-25;
for (int i = 0; i < 26; ++i) {
A=65;
A-=n;
n++;
printf("printfA:%c\n",A);
}
for (int id = 0; id < 26; ++id) {
a=97;
a-=e;
e++;
printf("printfa:%c\n",a);
}
return 0;
}
注解版本
#include<stdio.h>
int main()
{
char A,a,n,e;//n和e的作用一样(这里就不放在一起,原理都一样)
n=-25;
e=-25;
for (int i = 0; i < 26; ++i) {
A=65;
A-=n;//n的初值是负数所以一开始是加后面就是减
n++;
printf("printfA:%c\n",A);
}
for (int id = 0; id < 26; ++id) {
a=97;
a-=e;
e++;
printf("printfa:%c\n",a);
}
return 0;
}
优化版本
#include<stdio.h>
int main()
{
char A,a,n,e;//n和e的作用一样(这里就不放在一起,原理都一样)
n=-25;
e=-25;
for (int i = 0; i < 26; ++i) {
A=65;
a=97;
A-=n;//n的初值是负数所以一开始是加后面就是减
a-=n;
n++;
printf("printfA:%c\n",A);
printf("printfa:%c\n",a);
}
return 0;
}
总结:
- 负数的重要性