我的作业题

来源:互联网 发布:常见的软件架构 编辑:程序博客网 时间:2024/05/08 01:54

//1. 从键盘输入一串字符(当输入#时结束),统计其中的字母、数字、空格及其它字符各有多少个。

#include "stdio.h"
void main(void)
{
int iChar=0, iDig=0, iSpace=0, iOther=0;
char chCur;

printf("Input a string(end with '#'): ");
chCur = getchar();  //有谁知道 这里是干什么的吗?
while (chCur != '#')
{
if(chCur>='a'&&chCur<='z'||chCur>='A'&&chCur<='Z')
iChar++;
else if(chCur>='0'&&chCur<='9')
iDig++;
else if(chCur==' ')
iSpace++;
else
iOther++;

chCur = getchar(); // 读下一个字符
}

printf("Char: %d/nDigital: %d/nSpace: %d/nOther: %d/n", iChar,iDig,iSpace,iOther);
}

//2. 从键盘输入一个整数(位数未知),按相反的顺序依次输出各位数字。比如输入13146,则输出6,4,1,3,1。


#include "stdio.h"
void main(void)
{
int iNum, iB;

printf("Input one integer: ");
scanf("%d", &iNum);

while(iNum != 0)
{
iB = iNum % 10;  // 当前数的个位数
printf("%d ", iB);

iNum = iNum / 10; // 去掉个位数
}

printf("/n");
}

 //3. 编程求s=1-1/3+1/5-1/7+… 的值,直到最后一项的绝对值不大于10-6为止。
#include "stdio.h"
#include "math.h"
void main(void)
{
int i;
int iFlag; //当前项的符号
double dItem, dSum=0;

i = 1; // 第一项
iFlag = 1; // 第一项为'+'

while ( 1 )
{
dItem = iFlag * 1.0 / i; // 当前项的值
if(fabs(dItem) <= 1e-6) // 如果当前项绝对值<=1e-6则结束计算
break;

dSum = dSum + dItem; // 当前的和
i = i + 2; // 下一项
iFlag = -1 * iFlag; // 下一项的符号
}

printf("The sum is %f/n", dSum);
// printf("PI = %f/n", 4*dSum);
}

 

// 4.编程计算满足条件1^3+2^3+3^3+…+n^3<1000的最大的n值。#include "stdio.h"void main(void){int i, iSum;i = 0;iSum = 0;while(iSum < 1000){i++;iSum = iSum + i*i*i;//printf("i=%d, iSum=%d/n", i, iSum);}printf("The max n is %d/n", i-1);}