数组-《数据结构1000》-练习题
来源:互联网 发布:2017淘宝不好做 编辑:程序博客网 时间:2024/04/26 14:54
// 指针遍历一位数组 for(i = 0; i < 4; i++) { printf("%d \n", my_array_name[i]); printf("%d\n", *(my_array_name + i)); // int 与 char 没有区别, 加的是数组的第几个元素 } /* // 指针遍历二维数组 for(j = 0; j < 10; j++) for(m = 0; m < 10; m++) { ++i; my_2d_array[j][m] = i; // printf("%d\n" , my_2d_array[j][m]); printf("%d\n", *(*(my_2d_array + j) + m)); //给你一个形象的例子,假设有个一维数组a,a代表数组a的首地址,也就是&a对吧, //*a为第一个元素的值,*a+1为第二个元素的值,也就是*(a+1); //现在是二维数组b,*(b+i)其实就是*b+i对吧,表示数组b的第i行地址,没有问题吧? //*(b+i)+j表示第i行地址又便宜了j个单元,也就是数组b的第i行第j列元素的地址,这里没有问题吧? //再加个*号,*(*(b+i)+j)就是第i行第j列元素的值。 //记住一点一维数组要获取元素的值,必然有1个*号,二维数组要获取元素的值,必然有2个*号。 } */ /* // 找出1到10之间的偶数 int IsEven(int n); int IsEven(int n) { return n % 2 == 0 ? 1 : 0; } for(i = 1; i < 10; ++i) { if(IsEven(i)) { k = pow(i, 2); printf("%d\n", k ); // 可以 输出偶数平方 // printf("%d\n", pow(i, 2) ); 不行 输出全0 } } *//*int Add(int Array[], int start, int finish);//-----------------------------------------------------// 将数组若干元素加起来//-----------------------------------------------------int Add(int Array[], int start, int finish){ int sum = 0; for(int i = start; i <= finish; ++i) { sum += Array[i]; } return sum;} k = Add(my_array_name,1,3); printf("%d\n", k);*//*#include "stdio.h"#include <iostream>#include <math.h>#include <conio.h>#define ODD 0 // 奇数#define EVEN 1 // 偶数int ArrayAdd(int Array, int start, int finish, bool flag);//-------------------------------------------------------// 1.5 找到数组内若干奇数或偶数的和//-------------------------------------------------------int ArrayAdd(int Array, int start, int finish, bool flag){ int sum = 0; if(flag == ODD) { for(int i = start; i <= finish; ++i) { if(i % 2 == 1) //奇数 sum += i; } } else if(flag == EVEN) { for(int i = start; i <= finish; ++i) if(i % 2 == 0) //偶数 sum += i; } return sum;}int main(void){ int my_array_name[10] = {1,2,3,4,5,6,7,8,9,10}; int my_2d_array[10][10] = {0}; int i = 0,j = 0,m = 0,ans = 0; ans = ArrayAdd(*my_array_name, 0, 10, ODD); printf("%d\n", ans); system("pause"); return 1;}*//* //--------------------------------- // 平方数组的每个元素, 使用pow函数时,不能直接把printf("%d\n", pow(array[i], 2)), // 必须将他赋值给变量,再将变量printf,如下 for(i = 0; i <10; ++i) { ans = pow(my_array_name[i], 2); printf("%d\n", ans); }*//*// 1.10删除数组某元素,有问题#include "stdio.h"#include <iostream>#include <math.h>#include <conio.h>#define ODD 0 // 奇数#define EVEN 1 // 偶数#define OK 1#define WRONG 0 void DeleteItem(int a[], int size, int x);//---------------------------------------------------// 删除数组的某个元素//---------------------------------------------------void DeleteItem(int a[], int size, int x){ int i_delete = 0; int flag = 0; for(int i = 0; i < size; ++i) { if(a[i] == x) { i_delete = i; flag = 1; break; } if(flag = 1) { for(int m = i_delete; m < size - 1; ++m) { a[m] = a[m + 1]; } } else printf("the value is not found"); }}int main(void){ int my_array_name[10] = {1,2,3,4,5,6,7,8,9,10}; int my_2d_array[10][10] = {0}; int i = 0,j = 0,m = 0,ans = 0; DeleteItem(my_array_name, 10, 8); //删掉数组中的5 for(j = 0; j < 9; ++j) printf("%d\n", my_array_name[j]); system("pause"); return 1;}*//*// 1.11删除特定位置的数据项#include "stdio.h"#include <iostream>#include <math.h>#include <conio.h>#define ODD 0 // 奇数#define EVEN 1 // 偶数#define OK 1#define WRONG 0 void DeleteByLocation(int a[], int size, int delete_location);//---------------------------------------------------// 删除数组的某个元素//---------------------------------------------------void DeleteByLocation(int a[], int size, int delete_location){// int size;// size = sizeof(a)/sizeof(int); //局部变量中传进来的只是指针,sizeof后一定是1. for(int i = delete_location; i < size; ++i) { a[i - 1] = a[i]; }}int main(void){ int my_array_name[10] = {1,2,3,4,5,6,7,8,9,10}; int my_2d_array[10][10] = {0}; int i = 0,j = 0,m = 0,ans = 0; DeleteByLocation(my_array_name, sizeof(my_array_name) / sizeof(int), 5); //删掉数组中的第5个元素 for(j = 0; j < 9; ++j) printf("%d\n", my_array_name[j]); system("pause"); return 1;}*//*//---------------------------------------------------// 找数组中的最大//---------------------------------------------------int FindMax(int a[]){ int max = a[0]; for(int i = 0; i < 10; ++i) { if(a[i] > max) max = a[i]; } return max;}//---------------------------------------------------// 找数组中的最小//---------------------------------------------------int FindMin(int a[]){ int min = a[0]; for(int i = 0; i < 10; ++i) { if(a[i] < min) min = a[i]; } return min;}*//*// 1.14按字母顺序排序有问题,#include "stdio.h"#include <iostream>#include <math.h>#include <conio.h>#define ODD 0 // 奇数#define EVEN 1 // 偶数#define OK 1#define WRONG 0 void AlphaSort(char *a[], int size);//------------------------------------------// 按字母顺序升序排序数组(字符串)//------------------------------------------void AlphaSort(char *a[], int size){ char *temp = 0; for(int i = 0; i < size; ++i) for(int m = 0; m < i; ++m) { if(strcmp(a[i], a[i + 1]) > 0) //降序 { strcpy(temp, a[i]); strcpy(a[i], a[i + 1]); strcpy(a[i + 1], temp); } } for(int j = 0; j < size; ++j) printf("%s\n", *a[j]);}int main(void){ int my_array_name[10] = {1,2,3,4,5,6,7,8,9,10}; int my_2d_array[10][10] = {0}; char *names[]={"Zamal","Fakir","Amal","Kalam"}; //为何char names[]={"Zamal","Fakir","Amal","Kalam"};有错 int i = 0,j = 0,m = 0,ans = 0; AlphaSort(names,4); system("pause"); return 1;}*//*// 返回多个函数值#include "stdio.h"#include <iostream>#include <math.h>#include <conio.h>#define ODD 0 // 奇数#define EVEN 1 // 偶数#define OK 1#define WRONG 0 int* GetAddAndMul(int a[], int size);//------------------------------------------// 返回数组的和&积//------------------------------------------int* GetAddAndMul(int a[], int size){ int addandmul[2] = {0,1}; int *p = 0; p = &addandmul[0]; for(int i = 0; i < size; ++i) { addandmul[0] += a[i]; addandmul[1] *= a[i]; } return p;}int main(void){ int my_array_name[10] = {1,2,3,4,5,6,7,8,9,10}; int my_2d_array[10][10] = {0}; char *names[]={"Zamal","Fakir","Amal","Kalam"}; //为何char names[]={"Zamal","Fakir","Amal","Kalam"};有错 int i = 0,j = 0,m = 0,ans = 0; int *c; c = GetAddAndMul(my_array_name, sizeof(my_array_name) / sizeof(int)); printf("数组元素之和为 %d\n", c[0]); printf("数组元素之积为 %d\n", c[1]); system("pause"); return 1;}*/#include "stdio.h"#include <iostream>#include <math.h>#include <conio.h>#define ODD 0 // 奇数#define EVEN 1 // 偶数#define OK 1#define WRONG 0 char** ExtractCodesFromPhoneNumber(char *PhoneNum, char length, char separate);//------------------------------------------// 1.54把字符串(如电话号码)分隔开//------------------------------------------char** ExtractCodesFromPhoneNumber(char *PhoneNum, char length, char separate){ int i_seperate[] = {0}; int SeperateCnt = 0; char* ExtractedCodes[] = {0}; // 分割后的数组 for(int i = 0; i < length; ++i) { if(PhoneNum[i] == '-') { ++SeperateCnt; i_seperate[SeperateCnt] = i; // i = 3,即第四个数是‘-’ for(int m = i_seperate[SeperateCnt - 1]; m < i_seperate[SeperateCnt]; ++i) // 0、1、2 { sprintf(ExtractedCodes[SeperateCnt], "%d", PhoneNum[m]); //sprintf写不进去,需查看sprintf使用方法 } } }// char* ExtractedCodes[] = {"187", "9999", "9988"}; char** p = ExtractedCodes; return p;}int main(void){ int my_array_name[10] = {1,2,3,4,5,6,7,8,9,10}; int my_2d_array[10][10] = {0}; char *names[]={"Zamal","Fakir","Amal","Kalam"}; // 为何char names[]={"Zamal","Fakir","Amal","Kalam"};有错 int i = 0,j = 0,m = 0,ans = 0,len = 0; int *c; char PhoneNumber[14] = "187-9999-9988"; // 因为最后还有\0 len = strlen(PhoneNumber); char **p = ExtractCodesFromPhoneNumber(PhoneNumber, len + 1 ,'-'); printf("%s\n%s\n%s\n", *p, *(p + 1), *(p + 2));// printf("%s\n%s\n%s\n", *p[0], *p[1], *p[2]); system("pause"); return 1;}
0 0
- 数组-《数据结构1000》-练习题
- 字符串-《数据结构1000》-练习题
- 栈-《数据结构1000》-练习题
- 链表-《数据结构1000》-练习题
- 查找 - 《数据结构1000 + 大话数据结构》-练习题
- 数据结构:练习题
- 数据结构练习题
- 数据结构练习题
- 数组练习题
- 数组练习题
- 数组练习题
- 数据结构啊----基础知识练习题.
- 数据结构练习题1
- 数据结构练习题及答案
- 数据结构练习题5
- 【数据结构基础]】数据库练习题
- 数据结构-链表-练习题1
- 数据结构与算法分析笔记与总结(java实现)--排序9:有序数组合并练习题
- Java RMI详解
- 七个你无法忽视的Git使用技巧
- 计算机网络4--Internet结构
- 第一行代码3.2 常见控件的使用方法
- 七个你无法忽视的Git使用技巧
- 数组-《数据结构1000》-练习题
- 数据库having和where的区别
- sqlserver decimal转换成int类型的转换出错的另一种解决办法
- 文章标题
- 九度OJ 题目1019:简单计算器
- 域名劫持和数据劫持
- 8168 HDMI显示图片
- BUAA 1386-DZY的根 【贪心】
- Oracle Active Data Guard VS Oracle GoldenGate