#include <stdio.h>
int main(){
int sum=0;
int num=1;
int sum2=0;
int num2=2;
while(num<100){
sum=sum+num;
num=num+2;
}
printf("奇数和为:%d\n",sum);
while(num2<=100){
sum2=sum2+num2;
num2=num2+2;
}
printf("偶数和为:%d\n",sum2);
}
使用 for:
#include <stdio.h>
int main(){
int sum=0;
int sum2=0;
int num,num2;
for(num=1;num<100;num=num+2){
sum=sum+num;
}
printf("奇数和%d\n",sum);
for(num2=2;num2<=100;num2=num2+2){
sum2=sum2+num2;
}
printf("偶数和%d\n",sum2);
}
1477C 判断
switch语句一般形式:
switch(表达式)
{
case 常量表达式1:语句1;
case 常量表达式2:语句2;
...
default:语句n+1;
}
意思是先计算表达式的值,再逐个和 case 后的常量表达式比较,若不等则继续往下比较,若一直不等,则执行 default 后的语句;若等于某一个常量表达式,则从这个表达式后的语句开始执行,并执行后面所有 case 后的语句。
与 if 语句的不同:if 语句中若判断为真则只执行这个判断后的语句,执行完就跳出 if 语句,不会执行其他 if 语句;而 switch 语句不会在执行判断为真后的语句之后跳出循环,而是继续执行后面所有 case 语句。在每一 case 语句之后增加 break 语句,使每一次执行之后均可跳出 switch 语句,从而避免输出不应有的结果。
#include <stdio.h>
int main()
{
int a;
printf("input integer number: ");
scanf("%d",&a);
switch(a)
{
case 1:printf("Monday\n");
break;
case 2:printf("Tuesday\n");
break;
case 3:printf("Wednesday\n");
break;
case 4:printf("Thursday\n");
break;
case 5:printf("Friday\n");
break;
case 6:printf("Saturday\n");
break;
case 7:printf("Sunday\n");
break;
default:printf("error\n");
}
}
1476C 判断
举一个三目(元)运算的例子:
#include <stdio.h>
int A=10;
int B=20;
char buy;
int sum,number;
int main(){
printf("以下是本店的商品及价格:\n A 商品每个十元;\n B 商品每个二十元;\n\n");
printf("请输入你所需的产品(A 或 B):");
scanf("%c",&buy);
printf("请输入所需的数量:");
scanf("%d",&number);
sum=buy=='A'?A*number:B*number;
printf("\n你所需要的%d个%c商品总共%d元。\n",number,buy,sum);
return 0;
}
1475C 运算符
a++ 与 ++a 区别在于一个后加,一个先加。
a++ 输出 a 的值再自加,缓存 a 自加后的结果,用于下次进行与 a 相关的计算。
++a 则相当于 a+1。
#include <stdio.h>
int main(int argc, char **argv) {
int a=100;
int b=50;
// b++;
printf("%d,%d\n",a++,++a);
printf("%d,%d",b++,++b);
return 0;
}
运行后输出:
101,102
51,52
若不注释 b++:
int main(int argc, char **argv) {
int a=100;
int b=50;
b++;
printf("%d,%d\n",a++,++a);
printf("%d,%d",b++,++b);
return 0;
}
1479C 循环
用 do while 求算术平方根:
#include <stdio.h> double DoSqrt(double z){ double a=1; double b=0; double c=0; do{ if(b*b<z){ b+=a; } else{ c=b; b-=a; a/=10; } }while(a>0.000001); return (b+c)/2; } int main(){ double x, y; printf("请输入一个数字:"); scanf("%lf", &x); if(x<0){ printf("输入错误。"); } else { y=DoSqrt(x); printf("%g 的平方根为: %g.\n", x, y); } int z=1; do{ main(); z++; }while(z>10); return 0; }1478C 循环
使用 while, for 分别输 1~100 以内的所有的奇数和偶数的和:
使用 while:
#include <stdio.h> int main(){ int sum=0; int num=1; int sum2=0; int num2=2; while(num<100){ sum=sum+num; num=num+2; } printf("奇数和为:%d\n",sum); while(num2<=100){ sum2=sum2+num2; num2=num2+2; } printf("偶数和为:%d\n",sum2); }使用 for:
#include <stdio.h> int main(){ int sum=0; int sum2=0; int num,num2; for(num=1;num<100;num=num+2){ sum=sum+num; } printf("奇数和%d\n",sum); for(num2=2;num2<=100;num2=num2+2){ sum2=sum2+num2; } printf("偶数和%d\n",sum2); }1477C 判断
switch语句一般形式:
switch(表达式) { case 常量表达式1:语句1; case 常量表达式2:语句2; ... default:语句n+1; }意思是先计算表达式的值,再逐个和 case 后的常量表达式比较,若不等则继续往下比较,若一直不等,则执行 default 后的语句;若等于某一个常量表达式,则从这个表达式后的语句开始执行,并执行后面所有 case 后的语句。
与 if 语句的不同:if 语句中若判断为真则只执行这个判断后的语句,执行完就跳出 if 语句,不会执行其他 if 语句;而 switch 语句不会在执行判断为真后的语句之后跳出循环,而是继续执行后面所有 case 语句。在每一 case 语句之后增加 break 语句,使每一次执行之后均可跳出 switch 语句,从而避免输出不应有的结果。
#include <stdio.h> int main() { int a; printf("input integer number: "); scanf("%d",&a); switch(a) { case 1:printf("Monday\n"); break; case 2:printf("Tuesday\n"); break; case 3:printf("Wednesday\n"); break; case 4:printf("Thursday\n"); break; case 5:printf("Friday\n"); break; case 6:printf("Saturday\n"); break; case 7:printf("Sunday\n"); break; default:printf("error\n"); } }1476C 判断
举一个三目(元)运算的例子:
#include <stdio.h> int A=10; int B=20; char buy; int sum,number; int main(){ printf("以下是本店的商品及价格:\n A 商品每个十元;\n B 商品每个二十元;\n\n"); printf("请输入你所需的产品(A 或 B):"); scanf("%c",&buy); printf("请输入所需的数量:"); scanf("%d",&number); sum=buy=='A'?A*number:B*number; printf("\n你所需要的%d个%c商品总共%d元。\n",number,buy,sum); return 0; }1475C 运算符
a++ 与 ++a 区别在于一个后加,一个先加。
a++ 输出 a 的值再自加,缓存 a 自加后的结果,用于下次进行与 a 相关的计算。
++a 则相当于 a+1。
#include <stdio.h> int main(int argc, char **argv) { int a=100; int b=50; // b++; printf("%d,%d\n",a++,++a); printf("%d,%d",b++,++b); return 0; }运行后输出:
若不注释 b++:
int main(int argc, char **argv) { int a=100; int b=50; b++; printf("%d,%d\n",a++,++a); printf("%d,%d",b++,++b); return 0; }则结果为: