- 函数题
- 练习5-1 求m到n之和
- 练习5-2 找两个数中最大者
- 练习5-3 数字金字塔
- 习题5-1 符号函数
- 习题5-2 使用函数求奇数和
- 习题5-3 使用函数计算两点间的距离
- 习题5-4 使用函数求素数和
- 习题6-1 分类统计字符个数
- 习题10-7 十进制转换二进制
- 习题11-8 单链表结点删除
- 编程题
- 练习2-3 输出倒三角图案
- 练习2-4 温度转换
- 练习2-6 计算物体自由下落的距离
- 练习2-8 计算摄氏温度
- 练习2-9 整数四则运算
- 练习2-10 计算分段函数[1]
- 练习2-11 计算分段函数[2]
- 练习2-12 输出华氏-摄氏温度转换表
- 练习2-13 求N分之一序列前N项和
- 练习2-14 求奇数分之一序列前N项和
- 练习2-15 求简单交错序列前N项和
- 练习2-17 生成3的乘方表
- 习题2-1 求整数均值
- 习题2-3 求平方与倒数序列的部分和
- 习题2-5 求平方根序列前N项和
- 习题2-6 求阶乘序列前N项和
- 练习3-2 计算符号函数的值
- 练习3-3 统计学生平均成绩与及格人数
- 练习3-4 统计字符
- 练习3-5 输出闰年
- 练习3-7 成绩转换
- 习题3-2 高速公路超速处罚
- 习题3-4 统计学生成绩
- 练习7-3 将数组中的数逆序存放
本题要求实现一个计算m~n(mint sum(int m,int n)
{
int sum = 0;
sum = ((m+n) * (n -m)) /2;
return sum;
}
练习5-2 找两个数中最大者
int max( int a, int b )
{
if(a > b)
{
return a;
}
else
return b;
}
练习5-3 数字金字塔
void pyramid( int n )
{
int i, j, k;
for(i =1; i <= n; i++)
{
for(j = 1; j <= n-i; j++)
{
printf(" ");
}
for (k = 1; k <= i; k++)
{
printf("%d ", i);
}
printf("n");
}
}
习题5-1 符号函数
int sign(int x)
{
if (x > 0)
{
return 1;
}
else if (x < 0)
{
return -1;
}
else
return 0;
}
习题5-2 使用函数求奇数和
int even( int n )
{
if (n % 2 == 0)
return 1;
else
return 0;
}
int OddSum( int List[], int N )
{
int i,sum = 0;
for(i =0;i <= N;i++)
{
if(even(List[i]) == 0)
{
sum += List[i];
}
}
return sum;
}
习题5-3 使用函数计算两点间的距离
double dist( double x1, double y1, double x2, double y2 )
{
double dist = 0;
dist = sqrt( ((x2 - x1) * (x2 - x1)) + ((y2 - y1) * (y2 - y1)) );
return dist;
}
习题5-4 使用函数求素数和
int prime( int p )
{
int i,flag = 1;
if(p <= 1) return 0;
else
{
for ( i = 2; i <= sqrt( p ); i++)
{
if(p % i == 0)
{
flag = 0;
break;
}
}
return flag;
}
}
int PrimeSum( int m, int n )
{
int i,sum=0;
for(i = m;i <= n;i++)
{
if(prime(i) == 1)
sum += i;
}
return sum;
}
习题6-1 分类统计字符个数
void StringCount( char s[] )
{
int i, len, l = 0, b = 0, d = 0, o = 0;
len = strlen(s);
for ( i = 0; i < len; i++)
{
if(s[i] >= 'a' && s[i] <= 'z' ||s[i] >= 'A' && s[i] <= 'Z')
l++;
else if(s[i] == ' ' || s[i] == 'n')
b++;
else if(s[i] >= '0' && s[i] <= '9')
d++;
else
o++;
}
printf("letter = %d, blank = %d, digit = %d, other = %d", l, b, d, o);
}
习题10-7 十进制转换二进制
void dectobin( int n )
{
if ( n == 0 )
printf("0");
else if ( n == 1 )
printf("1");
else
{
dectobin( n / 2 );
printf("%d", n % 2 );
}
}
习题11-8 单链表结点删除
struct ListNode *readlist() { //构成链表
struct ListNode *p, *q, *head = NULL;
int n;
while(scanf("%d", &n) == 1 && n != -1) { //一直读入n,直到n为-1
p = (struct ListNode *)malloc(sizeof (struct ListNode)); //p指向一个新开的空间
p -> data = n; //p的data为n
p -> next = NULL; //把p的下一位置成空
if(head) { //不是第一个数
q -> next = p; //使q的下一位是新开的空间p
q = p; //q再指向新开的空间,不会被覆盖,此时q的上一位next指向新开的空间
} else { //是第一个数
head = q = p; //使head,q等于p,指向那个新开的空间
}
}
return head;
}
struct ListNode *deletem( struct ListNode *L, int m ) {
struct ListNode *p, *q;
for (q = NULL, p = L; p ; ) { //遍历链表,q节点的作用是指向被删除节点以前没删除的节点
if(p -> data == m) { //当前节点的值等于m
if(q) { //
q -> next = p -> next; //q节点的next指向删除节点的下一个节点
free(p);
p = q; //p指向被删除节点的上一个节点
} else {
L = p -> next; //L(头节点)指向当前节点的下一个
free(p);
p = L; //p指向下一个节点
}
} else {
q = p; //不删除,q保证是删除节点的上一个节点
p = p -> next; //p指向下一个节点
}
}
return L;
}
编程题
练习2-3 输出倒三角图案
#include
练习2-4 温度转换
#include
练习2-6 计算物体自由下落的距离
#include
练习2-8 计算摄氏温度
#include
练习2-9 整数四则运算
#include
练习2-10 计算分段函数[1]
#include
练习2-11 计算分段函数[2]
#include
练习2-12 输出华氏-摄氏温度转换表
#include
练习2-13 求N分之一序列前N项和
#include
练习2-14 求奇数分之一序列前N项和
#include
练习2-15 求简单交错序列前N项和
#include
练习2-17 生成3的乘方表
#include
习题2-1 求整数均值
#include
习题2-3 求平方与倒数序列的部分和
#include
习题2-5 求平方根序列前N项和
#include
习题2-6 求阶乘序列前N项和
#include
练习3-2 计算符号函数的值
#include
练习3-3 统计学生平均成绩与及格人数
#include
练习3-4 统计字符
#include
练习3-5 输出闰年
#include
练习3-7 成绩转换
#include
习题3-2 高速公路超速处罚
#include
习题3-4 统计学生成绩
#include
练习7-3 将数组中的数逆序存放
#include



