
C应用
vaercly
IOS应用开发
展开
-
动态函数调用实现下列操作,输入2个数以及操作符计算结果。@求最大公约数 $求最小公倍数 -求差 +求和
int sumValue(int x, int y) { return x + y;}int subValue(int x, int y) { return x - y;}int temp = 0;int gcdValue(int x, int y) {//greatest common divisor 最大公约数 if (x > y) {//使得x存储小值, y原创 2014-07-30 20:33:33 · 713 阅读 · 0 评论 -
输入一个字节内的数(0~255)和移动位数。输出移位结果(要求循环移位)提示:系统自带的移位都是非循环的
unsigned char number =0; int offset = 0; unsigned char left =0; unsigned char right =0; printf("输入一个字节内的数(0~255)和移动位数:\n"); scanf("%d%d", &number, &offset); left =原创 2014-07-25 19:10:16 · 593 阅读 · 0 评论 -
有5名学生保存在结构体数组中,编程按学生的成绩升序排序,按学生的姓名降序排序,按年龄从低到高排序, 成绩, 年龄
typedef struct stu { char name[20];//存储学生姓名 char sex;//存储学生性别 int age;//存储学生年龄 float score;}Stu; Stu stu[5] = { {"mengmeng", 'N',38, 100}, {"shuaishuai"原创 2014-07-24 19:54:22 · 4584 阅读 · 0 评论 -
定义一个结构体变量(包含年月日),计算该日在本年中为第几天?要求写一个days函数。参数是此结构体类型的变量,返回值是整数
typedef struct date { int year; int month; int day;}Date;原创 2014-07-24 19:59:46 · 3955 阅读 · 0 评论 -
找出一个二维数组中的“鞍点”,即该位置上的元素在该行中最大,在该列中最小(也可能没鞍点),打印出有关信息
int a[3][3] = {0}, row =0, column = 0, max = 0; for (int i = 0; i 3; i++) { for (int j =0; j 3; j++) { a[i][j] = arc4random() % 1000; printf("%d ", a[原创 2014-07-22 20:45:06 · 2117 阅读 · 0 评论 -
输入6个字符串,并对它们按从大到小的顺序排序后输出
char ad[6][20] = {0}; printf("请输入6个名字:\n"); for (int i = 0; i 6; i++) { scanf("%s", ad[i]); } for (int i = 0; i 6; i++) { for (int j =0; j 6 - i; j++) {原创 2014-07-22 20:43:35 · 3489 阅读 · 0 评论 -
随机生成一个三维数组,编程求深度的平均值,保存在一个二维数组中
int a[3][3][3] = {0}, b[3][3] = {0}; float c[3][3] = {0.0}; for (int i = 0; i 3; i++) { for (int j =0; j 3; j++) { for (int k =0; k 3; k++) { a[i原创 2014-07-22 20:44:31 · 1317 阅读 · 0 评论 -
用宏定义写出swap(x,y)
#definex = x + yy = x -原创 2014-07-20 17:12:28 · 2319 阅读 · 0 评论 -
请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
//周一:Monday 周二:Tuesday 周三:Wendesday 周四:Thursday周五:Friday 周六:Saturday周日:Sunday //getchar();用来把键盘缓冲区中的"回车"读出来丢掉(清空缓冲区) char a = '0'; printf("请输入当前星期数的首字母:\n"); scanf("%c", &a);原创 2014-07-20 15:35:54 · 3307 阅读 · 0 评论 -
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同
//第一种方法:输入数后,将数字的每一位存储到一个数组中,比较数组的前后 /* int a = 0, b[5] = {0} , i = 0; printf("请输入一个5位的正整数:\n");//45 scanf("%d", &a); for (int c = a; i b[i] = c % 10; print原创 2014-07-20 15:37:27 · 4163 阅读 · 1 评论 -
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
float temp = 0.0, m =1.0, n = 2.0, sum = 0.0; for (int i = 0; i 20; i++) { sum += n / m; temp = n + m;//temp存储m + n,防止数据被挤出...(一定要注意) m = n; n = temp;原创 2014-07-20 15:34:18 · 990 阅读 · 0 评论 -
有10个数,每个数取值范围是0-9找出其中重复的数,重复次数
//第一种方法放入数组后, 使数组中的元素逐个与0-9比较,相同则计数+1,输出计数>1的数组元素即可 /* int a[10] = {0}, count = 0; printf("随机的10个数为:\n"); for (int i = 0; i a[i] = arc4random() % 10; printf("%原创 2014-07-20 15:37:04 · 1169 阅读 · 0 评论 -
将两个排好序的数组,合并到另外一个数组中,并且合并之后的数组也是有序的。
//第一种方法:现将两个数组合并到第三个数组中,再对第三个数组排序(偷懒的方法) /* int a[] = {2, 20, 8, 30}, b[] = {5, 9, 13, 29}, c[8] = {0}; for (int i = 0; i c[i] = a[i]; } for (int i = 4, j = 0; i原创 2014-07-20 15:32:59 · 4026 阅读 · 0 评论 -
输入10个整数,将其中最小的数与第一个数对换,把最大的数和最后一个数对换,写三个函数:1.输入10个数,2.进行处理.3输出10个数
void assignArr(int *p,int count) { for (int i = 0; i *(p + i) = arc4random() % 100; }}//为数组赋0~99的随机值void outputArr(int *p,int count) { for (int i = 0; i原创 2014-07-27 13:01:56 · 4886 阅读 · 0 评论 -
在主函数中输入10个等长的字符串。用另一个函数对它们排序,然后主函数输出10个已经排好的字符串
void sortArr(char *p[], int count) { for (int i = 0; i for (int j = 0; j if (strcmp(*(p + j), *(p + j + 1)) > 0) { char *temp = NULL; tem原创 2014-07-27 13:03:30 · 5350 阅读 · 0 评论 -
有一字符串,包含数字与字母,编程去除数字。要求: //要求在原字符串中操作 //使用指针处理
void removeNumArr(char *p) { int firstNumIndex = 0, endNumIndex = 0, lengthOfNum = 0, i = 0, lastSumChar = 0; char *temp = p;//使temp指向首地址 while (*temp != '\0') { if (*temp >= '原创 2014-07-27 13:07:13 · 1486 阅读 · 0 评论 -
(指针版,无bug版)有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
char str[] = " vaercly love iOS ";//文本 char *temp = malloc(sizeof(str)); strcpy(temp, str); char *p[3] = {0};//存储堆区的地址 int length = 0;//存储单词的长度 int num = 0;//单词总个数 fo原创 2014-07-30 08:59:29 · 515 阅读 · 0 评论 -
(详版, 无bug版)有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
//1.如何存储文本? char str[] = " a41 a1421 b3511 b b c c c c dddddd jkthku"; //2.如何存储一个单词? char tempStr[20] = {0}; //存储文本中的一个单词 //3.如何存储堆区空间的地址? char *p[255] = {原创 2014-07-29 23:01:26 · 592 阅读 · 0 评论 -
随机产生20个[10 , 50]的正整数存到数组中,并求数组中的所有元素最大值、最小值、平均值以及各元素之和,及第二大值。
int a[20] = {0}; for (int i =0; i 20; i++) { a[i] = arc4random() % 41 + 10; printf("%d ", a[i]); } int max = a[0], min = a[0], second = a[0]; for (int i =0;原创 2014-07-19 14:38:17 · 1731 阅读 · 0 评论 -
有一段文本,将文本中的所有单词,存放到一个字符指针数组中(要求每个单词内存恰好)
char str[] = "vaercly love iOS";//文本 char temp[20] = ""; char *p[3] = {0};//存储堆区的地址 int num = 0;//单词总个数 int j = 0; for (int i = 0; i < strlen(str) + 1; i++) { if (str[i] !=原创 2014-07-29 21:22:16 · 624 阅读 · 0 评论 -
输入3个学员姓名, 动态分配内存保存学员姓名, 并在最后输出
//1 从控制台输入的字符串怎么存储 解决方案: 定义一个字符数组进行接收输入的字符串 //2 如何动态为学员姓名开辟空间 解决方案: 计算出字符串的长度, 然后加1 //3 如何存储为三个学员开辟空间之后的地址 解决方案: 使用指针数组来进行存储数组, 数组中有3个元素 char tempStr[20] = {0}; //临时存储学员姓名的字符数组 char *n原创 2014-07-29 16:12:22 · 2577 阅读 · 0 评论 -
strcpy函数的实现
void strCpy(char *p1, char *p2) { while (((*(p1++)) = (*(p2++)))) { }}原创 2014-07-29 09:07:50 · 497 阅读 · 0 评论 -
函数指针
int maxValue(int x, int y);int minValue(int x, int y);int sumValue(int x, int y);int maxValue(int x, int y) { return x > y ? x : y;}int minValue(int x, int y) { return x < y ? x : y;}/原创 2014-07-30 11:44:49 · 532 阅读 · 0 评论 -
根据输入的内容指向不同的函数,最后一次调用完成
printf("\n输入所要的操作:max 或 sum\n"); char str[10] = {0};//存储从控制台输入的字符串 scanf("%s", str); int (*p5)(int x, int y) = NULL;//定义一个指向返回值类型为int, 有两个整型参数的函数 //判断用户的输入, 决定指针指向 if (strcmp("max"原创 2014-07-30 11:46:01 · 632 阅读 · 0 评论 -
随机产生20个正整数存入数组a中,且每个数均在1000-9999之间(包含1000和9999)。对数组进行排序,要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数放入数组b中,如果
int a[20] = {0}; int b[10] = {0}; for (int i = 0; i < 20; i++) { a[i] = arc4random() % 9000 + 1000; printf("%d ", a[i]); if ((i + 1) % 5 == 0) { printf("\n"原创 2014-07-31 21:35:03 · 2137 阅读 · 0 评论 -
主函数创建5个学生的数组,写一个排序函数,让学生按姓名从小到大排序,主函数输出排序后的结果
//1.主函数创建5个学生的数组,写一个排序函数,让学生按姓名从小到大排序,主函数输出排序后的结果。 Student Stu[5] = { {"xiaomengmeng", 20, 99}, {"xiaoaa", 45, 49}, {"xiaobb", 25, 96}, {"xiaocc", 58, 79},原创 2014-07-28 21:24:46 · 1987 阅读 · 0 评论 -
将字符串中的数字提取出来, 动态分配内存
char str[] = "vaercly12345"; char *a = str; int num = 0, i = 0; while (*(a + i) != '\0') { if (*(a + i) >= '0' && *(a + i) <= '9') { num++; } i++; }原创 2014-07-29 15:45:58 · 602 阅读 · 0 评论 -
(无bug版)有一字符串,包含数字与字母,编程去除数字。要求: vae123rcly //要求在原字符串中操作 //使用指针处理
原创 2014-07-28 16:28:19 · 636 阅读 · 0 评论 -
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字
//第一种方法:对数取余数 /* int a = 0, i = 0; printf("请输入一个不多于5位的正整数:\n"); scanf("%d", &a); printf("逆序为:\n"); while (a > 0) { printf("%d ", a % 10);//逐次取个位数,输出 a原创 2014-07-20 15:35:56 · 2704 阅读 · 0 评论 -
编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。
char targetString[] ="good good study welcome ";//需要空格结束 int maxLength = 0, currentLength =0;//最长单词长度,当前单词长度 int maxIndex = 0;//最长单词的开始下标// printf("%ld", sizeof(targetString));/原创 2014-07-20 15:27:18 · 908 阅读 · 0 评论 -
乘法口诀表
for (int i =1; i 10; i++) { for (int j =1; j printf("%d * %d = %-3d", j, i, i * j); } printf("\n"); }原创 2014-07-17 12:06:49 · 461 阅读 · 0 评论 -
查找最长单词(字母和空格组成的)
char a[5][20] = {0}; unsigned long length = 0; int index = 0; printf("请输入单词:"); for (int i = 0; i scanf("%s", a[i]); if (length原创 2014-07-17 11:55:20 · 753 阅读 · 0 评论 -
输入一行字符,分别统计出其中英文,空格,数字和其他字符的个数
int c = 0, space = 0, num = 0, other = 0; char s[] = "djwiJFIW 123@#$!%";// scanf("%s", s); char *str = s; while (*str != '\0') { if ((*str >= 'A'原创 2014-07-17 11:45:14 · 467 阅读 · 0 评论 -
打印水仙花数和总个数(水仙花数是各个位的立方和等于该整数的三位数
int j = 0; for (int i = 100; i int x = i / 100; int y = i % 100 / 10; int z = i % 100 % 10; if (i == x * x * x + y * y * y + z * z * z) {原创 2014-07-17 11:41:19 · 760 阅读 · 0 评论 -
随机产生20个[10,100]的正整数,输出这些以及他们中的最大数
int a[20], i = 0, max = 0; for (i = 0; i int *p = &a[i]; a[i] = arc4random() % 91 + 10; printf("%d ", a[i]); }//产生[10-100]的随机数原创 2014-07-17 11:40:06 · 2499 阅读 · 0 评论 -
判断是否为素数
int a = 0; printf("请输入要判断的数字:\n"); scanf("%d", &a); for (int i =2; i if (a % i !=0) { printf("%d是素数\n", a); break; }else if (a % i =原创 2014-07-17 16:49:32 · 603 阅读 · 0 评论 -
打印*三角形
for (int i = 1; i for (int j = 1; j printf(" "); } for (int k = 1; k printf("*"); } for (int j = 1原创 2014-07-17 11:45:42 · 498 阅读 · 0 评论 -
找零钱的张数最少(20元,10元,5元,1元)
int money = 0, a = 0, b = 0, c = 0, d = 0;//20,10,5,1 printf("Enter a dollar amout:\n"); scanf("%d", &money); a = money / 20; b = money % 20 / 10; c = mone原创 2014-07-17 11:58:01 · 2757 阅读 · 0 评论 -
while和do..while和for循环
//while 和 do...while的区别//对于while循环,需要先判断条件,然后执行循环体,而对于do...while循环来说,不管循环条件是否成立,先执行一次,然后再判断循环条件是否成立//while 和for 的区别//while循环多用于不明确的循环次数是使用,而for循环多用于指导循环的次数时使用.for循环可以转为while//循环,但是while循环不可以原创 2014-07-17 16:35:22 · 695 阅读 · 0 评论 -
有10个数,每个数取值范围为0-9,找出重复的数
int r[10] = {0}; for (int i = 0; i r[i] = arc4random() % 10; printf("%d ", r[i]); } printf("\n"); for (int i = 0; i for (in原创 2014-07-17 11:56:50 · 600 阅读 · 0 评论