黑马程序员------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
循环结构
01 当型循环while
格式:
while(表达式)
语句;
*先计算while后面表达式的值,如果岂值为真,则执行循环体
*执行完循环体后,再次执行计算while后的表达式,其值还为真则继续执行循环体,其值为假,则退出循环。
*一开始表达式为假,则一次循环也不执行
*循环体有多个语句,用{}括起来
*循环体中应有使循环体结束的语句,避免死循环
*循环初始值,累加常设置为0,累乘常设置为1
// 输入若干字符,如果是大写字母,则转换为小写,如果不是则不转换,输入0程序结束 #include <stdio.h> int main() { char ch; while ((ch=getchar())!=0) { ch = ((ch>=‘A‘&&ch<=‘Z‘)?(ch+32):ch); printf("%c",ch); } }
02 do-while
格式:
do
{
语句;
}while(表达式)
*执行do后面的循环体语句,然后再计算表达式,如果表达式为真,则继续执行循环体,如果表达式为假,则退出循环。
*while后面必须加;
// 计算:1+1/2+1/4+....+1/50 #include <stdio.h> int main() { int i=2; float sum=1; while (i<=50) { sum = sum+1.0/i; i+=2; } printf("sum=%f\n",sum); return 0; }
03 for循环
for(表达式1;表达式2;表达式3)
循环体;
*先计算表达式1,再计算表达式2,如果其值为真,则执行循环体,再执行表达式3,然后再继续循环。其值为假,则退出循环。
四 break语句和continue语句
01 break语句
格式:break;
*终止对switch语句或循环语句的执行,而转移到其后的语句处执行。
02 continue语句
格式:continue;
*continue的作用是结束本次循环,即跳过本次循环中余下尚未执行的语句,接着进行下一次循环的判定。
*与break语句不同,执行continue语句并没有使整个循环终止。
// 求正整数n的阶乘n!,其中n由用户输入 #include <stdio.h> int main() { float fact; int n,i; printf("请输入整数:\n"); scanf("%d",&n); for (i=1,fact=1.0; i<=n; i++) { fact = fact*i; } printf("fact=%f\n",fact); return 0; }
五 指针程序设计
01 指针变量的含义:指针变量就是一类存取其他变量或函数的地址的变量。
02 指针变量的定义:
基类型 *指针变量名【=初始值】
03 指针变量的赋值:
*通过地址运算符&赋值,可以把一个变量的地址赋给指针变量。
如:float f,*p;
p=&f;
*定义指针变量的同时赋值
如:float f,*p=&f;
*通过其他指针赋值
如:int i,*p1=&i,*p2;
p2=p1;
注意:两个指针类型所指的数据类型必须相等
// 输出九九乘法口诀 #include <stdio.h> int main() { int i,j; for (i=1; i<=9; i++) { for (j=1; j<=i; j++) { printf("%d*%d=%-3d",j,i,i*j); } printf("\n"); } return 0; }
04 指针运算符
指针运算符*是单目运算符,可以用来存取所指向的存储单元中得数据。
如:int x,*p;
p=&x;
说明指针p指向x,x是p指向的对象,可以用*p来引用x。
// 从键盘上连续输入字符,并统计其中大写字母的个数,直到输入“换行”字符时结束 #include <stdio.h> int main() { char ch ; int sum = 0; while (1) { ch = getchar(); if (ch==‘\n‘) { break; } if (ch>=‘A‘&&ch<=‘Z‘) { sum++; } } printf("%d\n",sum); return 0; }
// 从键盘输入30个字符,统计其中数字字符的个数 #include <stdio.h> int main() { char ch; int i,sum=0; for (i=1; i<=30; i++) { ch =getchar(); if (ch<‘0‘||ch>‘9‘) { continue; } sum++; } printf("%d\n",sum); return 0; }
// 由键盘输入一个正整数,求出其最高位数字 #include <stdio.h> int main() { int i,*P; P=&i; printf("请输入一个正整数:\n"); scanf("%d",&i); while (*P>=10) { *P= *P/10; } printf("最高位数字是:%d\n",*P); return 0; }