自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(74)
  • 收藏
  • 关注

原创 C PRIMER PLUS(第六版编程练习)12.9编程练习_6题

/*编写一个程序,生成1000个1~10范围内的随机数。不用保存或打印这些数字,仅打印每个数出现的次数。用10个不同的种子值运行,生成的数字出现的次数是否相同?可以使用本章自定义的函数或ANSIC的rand()和srand()函数,它们的格式相同。这是一个测试特定随机数生成器随机性的方法。*/#include<stdio.h>#include<stdlib.h>int rand_10(int n);int main(void){ int i; int seed

2020-08-19 13:35:03 361

原创 C PRIMER PLUS(第六版编程练习)12.9编程练习_5题

/*编写一个程序,生成100个1~10范围内的随机数,并以降序排列(可以把第11章的排序算法稍加改动,便可用于整数排序,这里仅对整数排序)。*/#include<stdio.h>#include<stdlib.h>#define SIZE 100int rand_10(int n);void grade_down(int arr[],int num);int main(void){ int i; int arr[SIZE]; for (i = 0; i &lt

2020-08-18 16:01:51 223

原创 C PRIMER PLUS(第六版编程练习)12.9编程练习_4题

/*在一个循环中编写并测试一个函数,该函数返回它被调用的次数。*/#include<stdio.h>int output_ct(void);int ct = 0;int main(void){ int i; for (i = 0; i < 4; i++) output_ct(); printf("%d", output_ct()); return 0;}int output_ct(void){ return ct++;}...

2020-08-18 15:09:51 603

原创 C PRIMER PLUS(第六版编程练习)12.9编程练习_3题

/*重新设计编程练习2,要求只使用自动变量。该程序提供的用户界面不变,即提示用户输入模式等。但是,函数调用要作相应变化。*///main()#include <stdio.h> #include "pe12-2a.h" int main(void){ int mode; float distance; float consumed; float* p1; float* p2; p1 = &distance; p2 = &consumed; prin

2020-08-18 14:39:28 160

原创 C PRIMER PLUS(第六版编程练习)12.9编程练习_2题

//pe12-2a.h#pragma oncevoid set_mode(void);void get_info(void);void show_info(void);//main()#include <stdio.h> #include "pe12-2a.h" int main(void){ extern int mode; printf("Enter 0 for metric mode, 1 for US mode:\n"); scanf("%d", &mod

2020-08-18 11:50:32 98

原创 C PRIMER PLUS(第六版编程练习)12.9编程练习_1题

/*不使用全局变量,重写程序清单12.4.*/#include <stdio.h> void critic(int* p); int main(void) { int units; int pt = &units; printf(" How many pounds to a firkin of butter?\n"); scanf("%d", &units); while (units != 56) critic(pt); printf(" Y

2020-08-14 16:16:14 150

原创 C PRIMER PLUS(第六版编程练习)11.13编程练习_10题

/*编写一个函数接受一个字符串作为参数,并删除字符串中的空格。在一个程序中测试该函数,使用循环读取输入行,直到用户输入一行空行。该程序应该应用该函数读取每个输入的字符串,并显示处理后的结果。*/#include<stdio.h>#define SIZE 40void del_space(char str[]);int main(void){ char string[SIZE]; int i = 0; while ((string[i] = getchar()) != '\

2020-08-03 15:38:40 283 1

原创 C PRIMER PLUS(第六版编程练习)11.13编程练习_9题

/*编写一个函数,把字符串中的内容用其反序字符串代替。在一个完整的程序中测试该函数,使用一个循环给函数提供输入值。*/#include<stdio.h>#include<string.h>#define SIZE 40void inverted(char str[]);int main(void){ char string[SIZE]; int i = 0; while ((string[i] = getchar()) && i < SIZ

2020-08-03 14:53:11 163

原创 C PRIMER PLUS(第六版编程练习)11.13编程练习_8题

/*编写一个名为string_in()的函数,接受两个指向字符串的指针作为参数。如果第2个字符串包含在第1个字符串中,该函数将返回第1个字符串开始的地址。例如,string_in("hats","at")将返回hats中a的地址。否则,该函数返回空指针。在一个完整的程序中测试该函数,使用一个循环给函数提供输入值。*/#include<stdio.h>#define SIZE 40char* string_in(char* s1, char* s2);int main(void)

2020-07-29 16:53:30 270

原创 C PRIMER PLUS(第六版编程练习)11.13编程练习_7题

/*strncpy(s1,s2,n)函数把s2中的n个字符拷贝至s1中,截断s2,或者有必要的话在末尾添加空字符。如果s2的长度是n或多于n,目标字符串不能以空字符结尾。该函数返回s1。自己编写一个这样的函数,名为mystrncpy()。在一个完整的程序中测试该函数,使用一个循环给函数提供输入值。*/#include<stdio.h>#define SIZE 40char* mystrncpy(char *s1, char *s2, int n);int main(void){

2020-07-29 11:49:52 306 2

原创 C PRIMER PLUS(第六版编程练习)11.13编程练习_6题

/*编写一个名为is_within()的函数,接受一个字符和一个指向字符串的指针作为两个函数形参。如果指定字符在字符串中,该函数返回一个非零值(即为真)。否则,返回0(即为假)。在一个完整的程序中测试该函数,使用一个循环给函数提供输入值。*/#include<stdio.h>int is_within(char* s, int c);#define SIZE 40int main(void){ char str[SIZE]; int i = 0; char ch; ch

2020-07-29 10:35:35 642

原创 C PRIMER PLUS(第六版编程练习)11.13编程练习_5题

/*设计并测试一个函数,搜索第1个函数形参指定的字符串,在其中查找第2个函数形参指定的字符首次出现的位置。如果成功,该函数返指向该字符的指针,如果在字符串中未找到指定字符,则返回空指针(该函数的功能与strchr()函数相同)。在一个完整的程序中测试该函数,使用一个循环给函数提供输入值。*/#include<stdio.h>char* search(char *s, int c);#define SIZE 40int main(void){ char str[SIZE];

2020-07-29 10:16:56 263

原创 C PRIMER PLUS(第六版编程练习)11.13编程练习_4题

/*3.设计并测试一个函数,从一行输入中把一个单词读入一个数组中,并丢弃输入行中的其余字符。该函数应该跳过第1个非空白字符前面的所有空白。将一个单词定义为没有空白、制表符或换行符的字符序列。4.设计并测试一个函数,它类似编程练习3的描述,只不过它接受第2个参数指明可读取的最大字符数。#include<stdio.h>#define SIZE 40void in_word(char str[]);int main(void){ char store[SIZE]; in_wor

2020-07-23 16:40:51 177

原创 C PRIMER PLUS(第六版编程练习)11.13编程练习_3题

/*3.设计并测试一个函数,从一行输入中把一个单词读入一个数组中,并丢弃输入行中的其余字符。该函数应该跳过第1个非空白字符前面的所有空白。将一个单词定义为没有空白、制表符或换行符的字符序列。*/#include<stdio.h>#define SIZE 40void in_word(char str[]);int main(void){ char store[SIZE]; in_word(store); fputs(store, stdout); return 0;}

2020-07-22 12:37:06 210

原创 C PRIMER PLUS(第六版编程练习)11.13编程练习_2题

/*修改并编程练习1的函数,在n个字符后停止,或在读到第1个空白、制表符或换行符时停止,哪个先遇到哪个停止。不能只使用scanf()。#include<stdio.h>#define SIZE 40void in_str(char st[]);int main(void){ char str[SIZE] = { 0 }; int n; in_str(str); puts(str); return 0;}void in_str(char st[]){ int i =

2020-07-22 12:04:10 127

原创 C PRIMER PLUS(第六版编程练习)11.13编程练习_1题

/*1.设计并测试一个函数,从输入中获取n个字符(包括空白、制表符、换行符),把结果存储在一个数组里,它的地址被传递作为一个参数。*/#include<stdio.h>#define SIZE 40void in_str(char st[]);int main(void){ char str[SIZE] = { 0 }; int n; in_str(str); puts(str); return 0;}void in_str(char st[]){ int i

2020-07-21 16:34:41 150

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_13题

/*编写一个程序,提示用户输入3组数,每组数包含5个double类型的数(假设用户都正确地响应,不会输入非数值数据)。该程序应完成下列任务。  a.把用户输入的数据存储在3×5的数组中  b.计算每组(5个)数据的平均值  c.计算所有数据的平均值  d.找出这15个数据中的最大值  e.打印结果每个任务都要用单独的函数来完成(使用传统C处理数组的方式)。完成任务b,要编写一个计算并返回一维数组平均值的函数,利用循环调用该函数3次。对于处理其他任务的函数,应该把整个数组作为参数,完成任务c和

2020-07-04 11:17:04 371

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_12题

/*重写程序清单10.7的rain.c程序,把main()中的主要任务都改成用函数来完成。#include<stdio.h> #define MONTHS 12 // 一年 的 月 份数#define YEARS 5 // 年数 int main(void){ // 用 2010 ~ 2014 年的 降水量 数据 初始化 数组 const float rain[YEARS][MONTHS] = { {4.3,4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,

2020-07-04 09:49:10 217

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_11题

/*编写一个程序,声明一个int类型的3×5二维数组,并用合适的值初始化它。该程序打印数组中的值,然后各值翻倍(即是原值的2倍),并显示出各元素的新值。编写一个函数显示数组的内容,再编写一个函数把各元素的值翻倍。这两个函数都以函数名和行数作为参数。*/#include<stdio.h>#define ROWS 3#define COLS 5void twotimes_ar(int source[][COLS], int rows);void output_ar(int sour

2020-07-04 09:10:43 519

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_10题

/*编写一个函数,把两个数组中相对应的元素相加,然后把结果存储到第3个数组中。也就是说,如果数组1中包含的值是2、4、5、8,数组2中包含的值是1、0、4、6,那么该函数把3、4、9、14赋给第3个数组。函数接受3个数组名和一个数组大小。在一个简单的程序中测试该函数。*/#include<stdio.h>#define SIZE 4void add_ar(int source1[], int source2[], int target[], int size);void ou

2020-07-04 08:30:19 399

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_9题

/*编写一个程序,初始化一个double类型的3×5二维数组,使用一个处理变长数组的函数将其拷贝至另一个二维数组中。还要编写一个以变长数组为形参的函数以显示两个数组的内容。这两个函数应该能处理任意N×M数组(如果编译器不支持变长数组,就使用传统C函数处理N×5的数组)。*/#include<stdio.h>#define ROWS 3#define COLS 5void copy_arr(int rows, int cols, double ar[rows][cols],doubl

2020-07-04 08:17:45 197

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_8题

/*使用编程练习2中的拷贝函数,把一个内含7个元素的数组中第3~第5个元素拷贝至内含3个元素的数组中。该函数本身不需要修改,只需要选择合适的实际参数(实际参数不需要是数组名和数组大小,只需要是数组元素的地址和待处理元素的个数)。*/#include<stdio.h>void copy_arr(int * target1, int * source, int n);int main(void){ int a[7] = { 1,2,3,4,5,6,7 }; int b[3] = {

2020-06-30 08:42:52 121

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_7题

/*编写一个程序,初始化一个double类型的二维数组,使用编程练习2中的一个拷贝函数把该数组中的数据拷贝至另一个二维数组中(因为二维数组是数组的数组,所以可以使用处理一维数组的拷贝函数来处理数组中的每个子数组)。*/#include<stdio.h>void copy_arr(double* target1, double* source, int n);int main(void){ double a[3][3] = { {1.1,2.2,3.3}, {

2020-06-29 17:32:01 214

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_6题

/*编写一个函数,把double类型数组中的数据倒序排列,并在一个简单的程序中测试该函数。*/#include<stdio.h>void invert_arr(double arr[]);void output_arr(double arr[], int n);#define SIZE 5int main(void){ double a[SIZE] = { 3.1,2.1,4.1,5.1,1.1 }; invert_arr(a, SIZE); output_arr(a, SI

2020-06-29 11:38:33 194

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_5题

/*编写一个函数,返回存储在double类型数组中最大值和最小值的差值,并在一个简单的程序中测试该函数。*/#include<stdio.h>double max_min(const double arr[], int n);int main(void){ double x; double a[5] = { 2.33,1.53,5.73,4.63,3.78 }; x = max_min(a, 5); printf("%lf", x); return 0;}double

2020-06-29 09:33:17 227

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_4题

/*编写一个函数,返回存储在double类型数组中最大值的下标,并在一个简单的程序中测试该函数。*///有BUG问题在哪没找出来#include<stdio.h>double max_ar(const double * p, int n);int count(const double arr[], int n,double max);int main(void){ double arr[5] = {3.1, 2.1,6.1,4.1,5.1}; printf("%lf\n",

2020-06-29 08:51:10 175

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_3题

/*编写一个函数,返回存储在int类型数组中的最大值,并在一个简单的程序中测试该函数。*/#include<stdio.h>int max_ar(const int* p, int n);int main(void){ int arr[5] = { 3,6,2,1,4 }; printf("%d", max_ar(arr, 5)); return 0;}int max_ar(const int* p, int n){ int x = *p; int i; for

2020-06-29 08:16:19 218

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_2题

/*编写一个程序,初始化一个double类型的数组,然后把该数组的内容拷贝至3个其他数组中(在main()中声明这4个数组)。使用带数组表示法的函数进行第1份拷贝。使用带指针表示法和指针递增的函数进行第2份拷贝。把目标数组名、源数组名和待拷贝的元素个数作为前两个函数的参数。第3个函数以目标数组名、源数组名和指向源数组最后一个元素后面的元素的指针。也就是说,给定以下声明,则函数调用如下所示:double source[5] = {1.1, 2.2, 3.3, 4.4, 5.5};double tar

2020-06-26 16:30:22 220

原创 C PRIMER PLUS(第六版编程练习)10.13编程练习_1题

/*修改程序清单10.7的rain.c程序,用指针进行计算(仍然要声明并初始化数组)。*/#include<stdio.h>#define MONTHS 12#define YEARS 5int main(void){ const float rain[YEARS][MONTHS] = { {4.3,4.3,4.3,3.0,2.0,1.2,0.2,0.2,0.4,2.4,3.5,6.6}, {8.5,8.2,1.2,1.6,2.4,0.0,5.2,0.9,0.3,0.9

2020-06-26 15:12:53 128

原创 C PRIMER PLUS(第六版编程练习)9.11编程练习_11题

/*编写并测试Fibonacci()函数,该函数用循环代替递归计算斐波那契数。1,1,2,3,5,8,13*/#include<stdio.h>void Fibonacci(int n);int main(void){ int m; printf("请输入前m项:"); scanf("%d", &m); Fibonacci(m); return 0;}void Fibonacci(int n){ int m1; int m2; int m3; int

2020-06-15 08:41:56 155

原创 C PRIMER PLUS(第六版编程练习)9.11编程练习_10题

/*为了让程序清单9.8中的to_binary()函数更通用,编写一个to_base_n()函数接受两个参数,且第二个参数在2~10范围内,然后以第2个参数中指定的进制打印第1个参数的数值。例如,to_base_n(129,8)显示的结果为201,也就是129的八进制数。在一个完整的程序中测试该函数。*/#include<stdio.h>void to_binary(unsigned long n);int main(void){ unsigned long number;

2020-06-12 16:41:02 189

原创 C PRIMER PLUS(第六版编程练习)9.11编程练习_9题

/*使用递归函数重写编程练习8。#include<stdio.h>double power(double n, int p);int main(void){ double x, xpow; int exp; printf("Enter an number and the positive integer power"); printf("to which \nthe number will be raised .Enter q"); printf("to quit.\n");

2020-06-12 15:50:04 178

原创 C PRIMER PLUS(第六版编程练习)9.11编程练习_8题

/*第6章的程序清单6.20中,power()函数返回一个double类型数的正整数次幂。改进该函数,使其能正确计算负幂。另外,函数要处理0的任何次幂次幂都为0,任何数的0次幂都为1(函数应报告0的0次幂未定义,因此把该值处理为1)。要使用一个循环,并在程序中测试该函数。#include<stdio.h>double power(double n, int p);int main(void){ double x, xpow; int exp; printf("Enter an

2020-06-12 14:37:46 252

原创 C PRIMER PLUS(第六版编程练习)9.11编程练习_7题

/*编写一个函数,从标准输入中读取字符,直到遇到文件结尾。程序要报告每个字符是否是字母。如果是,还要报告该字母在字母表中的数值位置。例如,c和C在字母表中的位置都是3。合并一个函数,以一个字符作为参数,如果该字符是一个字母则返回一个数值位置,否则返回-1。*/#include<stdio.h>#include<ctype.h>int location(char c);int main(void){ char ch; printf("请输入:\n"); while

2020-06-12 11:36:37 474

原创 C PRIMER PLUS(第六版编程练习)9.11编程练习_6题

/*编写并测试一个函数,该函数以3个double变量的地址作为参数,把最小值放入第1个变量,中间值放入第2个变量,最大值放入第3个变量。*/#include<stdio.h>void test(double *pa, double *pb, double *pc);int main(void){ double a, b, c; printf("请输入3个数字:"); scanf("%lf %lf %lf", &a, &b, &c); test(&amp

2020-06-12 10:08:28 508

原创 C PRIMER PLUS(第六版编程练习)9.11编程练习_5题

/*编写并测试一个函数larger_of(),该函数把两个double类型变量的值替换为较大的值。例如,larger_of(x,y)会把x和y中较大的值重新赋给两个变量。*/#include<stdio.h>double larger_of(double m, double n);int main(void){ double x, y; printf("请输入2个数字:"); scanf("%lf %lf", &x, &y); x = y = larger_o

2020-06-12 09:23:00 179

原创 C PRIMER PLUS(第六版编程练习)9.11编程练习_4题

/*两数的调和平均数这样计算:先得到两数的倒数,然后计算两个倒数的平均值,最后取计算结果的倒数。编写一个函数,接受两个double类型的参数,返回这两个参数的调和平均数。*/#include<stdio.h>double har_mean(double m, double n);int main(void){ double x, y; printf("请输入2个数:"); scanf("%lf %lf", &x, &y); printf("%lf与%lf的调和

2020-06-11 16:50:16 476

原创 C PRIMER PLUS(第六版编程练习)9.11编程练习_2题

/*设计一个函数chline(ch,i,j),打印指定的字符j行i列。在一个简单的驱动程序中测试该函数。*/#include<stdio.h>void chline(char ch, int i, int j);int main(void){ char ch; int i; int j; printf("请输入打印字符:"); scanf("%c", &ch); printf("请输入需要打印的行数:"); scanf("%d", &i); printf

2020-06-11 16:33:25 323

原创 C PRIMER PLUS(第六版编程练习)9.11编程练习_1题

/*设计一个函数min(x,y),返回两个double类型值的较小值。在一个简单的驱动程序中测试该函数。*/#include<stdio.h>double min(double x, double y);int main(void){ double x, y; printf("请输入2个数:"); scanf("%lf %lf", &x, &y); printf("%lf", min(x, y)); return 0;}double min(double

2020-06-11 16:16:23 345

原创 C PRIMER PLUS(第六版编程练习)8.11编程练习_6题

/*修改程序清单8.8中的get_first()函数,让该函数返回读取的第1个非空白字符,并在一个简单的程序中测试。char get_first(void){ int ch; ch = getchar(); while(getchar() != '\n') continue; return ch;}*/#include<stdio.h>char get_first(void);int main(void){ printf("%c", get_first());}

2020-06-07 15:48:05 292

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除