3.1求1+3+5+...+99的值
#include <stdio.h>
int main(void){
int i,sum=0;
for(i=1;i<=99;i+=2){
sum=sum+i;
}
printf("%d",sum);
}
3.2计算s=1!+3!+...+9!的值
#include <stdio.h>
int main(void){
int i,j,sum=0,x;
for(i=1;i<=9;i++){
x=1;//阶乘的初始值必须在循环中定义,否则每次阶乘不是从1开始了
for(j=1;j<=i;j++){
x=x*j;//n! 计算阶乘
}
sum=sum+x;//计算阶乘结果相加
}
printf("%d\n",sum);
}
3.3输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
#include <stdio.h>
int main(void){
char c;
int letters=0,spaces=0,num=0,others=0;
printf("请输入一行任意字符:");
while((c=getchar())!='\n'){//当输入为换行时视为输入结束
if((c>='a'&&c<='z')||(c>='A'&&c<='Z')){//如果是字母,字母+1
letters++;
}else if(c>='0'&&c<='9'){//如果是数字,数字+1
num++;
}else if(c ==' '){//如果是空格,空格+1
spaces++;
}else{//其他+1
others++;
}
}
printf("英文字母有:%d个,数字有:%d个,空格有:%d个,其他字符有:%d个",letters,num,spaces,others);
}
3.4输出小写字母的ASCII码对照表
#include <stdio.h>
int main(void){
char c;
for(c='a';c>='a'&&c<='z';c++){
printf("%c:%4d\n",c,c);
}
}
3.5计算s=1+12+123+1234+12345的值
#include <stdio.h>
#include <math.h>
int main(void){
//循环i,总和sum,每一项 t
int i,sum=0,t=0;
for(i=1;i<=5;i++){
t = t*10+i;
sum = sum+t;
}
printf("%d",sum);
}
3.6 计算1-1/2+1/3-1/4+…+1/99-1/100+…,直到最后一项的绝对值小于10-6为止.
#include <stdio.h>
#include <math.h>
int main(void){
//分子 i, 每次和上一个符号相反
//分母 n,每次递增1
//每一项 t
//循环结束条件:最后一项的绝对值小于10的-6次方
int i=1;
double t=1,n=1,sum=0;
while(fabs(t)>=1e-6){
t=i/n;
i=-i;
n++;
sum = sum+t;
}
printf("%lf",sum);
}
3.7输出100以内具有10个以上因子的整数,并输出它的因子
#include <stdio.h>
int main(void)
{
int i,j,n;
for(i=1;i<101;i++)
{
n=2;
for(j=2;j<=i/2;j++){
if(i%j==0)n++;
}
if(n>9)
{
printf("%d: 1",i);
for(j=2;j<=i/2;j++){
if(i%j==0)printf(",%d",j);
}
printf(",%d\n",i);
}
}
}
输出以下图案
A
BBB
CCCCC
DDDDDDD
#include <stdio.h>
int main(void)
{
int i,j,k;
char c = 'A';
for(i=1;i<=4;i++){//总共4行数据,所以最外层循环是4次
for(j=1;j<=4-i;j++){//找出空格与i的关系,可以看出是4-i
printf(" ");
}
for(k=1;k<=2*i-1;k++){//找出每层的循环与i的关系,可以看出是2i-1
printf("%c",c);
}
c++;
printf("\n");
}
}
输出一下图案
A
ABC
ABCDE
ABCDEFG
#include <stdio.h>
int main(void)
{
int i,j,k;
char c ;
for(i=1;i<=4;i++){//总共4行数据,所以最外层循环是4次
for(j=1;j<=4-i;j++){//找出空格与i的关系,可以看出是4-i
printf(" ");
}
c = 'A';
for(k=1;k<=2*i-1;k++){//找出每层的循环与i的关系,可以看出是2i-1
printf("%c",c);
c++;
}
printf("\n");
}
}