回顾大一·C语言编程11.1(2)+11.2(1)(2)(2)(3)①(3)②+11.3(1)(2)+11.4(1)①②+11.4(2)
来源:互联网 发布:航仕科技 知乎 编辑:程序博客网 时间:2024/05/29 16:20
通过调用函数fun找出一维数组元素中最大的值和它所在的下标,最大值的和它所在的下标通过形参指针p和q传回。数组元素中的值在主函数中赋予,主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。
#include <stdio.h>//1void fun(int a[],int n, int *p, int *q) //2{int i; //3*p=a[0]; //4*q=0; //5for(i=1;i<n;i++) //6if(*p<a[i]) //7{*p=a[i]; //8*q=i; //9 } } main() //10{int i, x[50],max,index, n=10; //11for(i=0;i<n;i++)//12{scanf("%d",&x[i]); //13printf("%4d",x[i]); //14} fun(x,n,&max,&index); //15 printf("\nMax=%d,Index=%d\n",max,index); //16}
以下程序的作用是扫描字符数组a和字符数组b,并输出对应位置相同的字符。
#include<stdio.h>main(){char a[10]="language",b[]="programe"; char *p1,*p2;int k;p1=a;p2=b;for(k=0;k<8;k++)if(*(p1+k)==*(p2+k))printf("%c\n",*(p1+k));}
函数voiddelete_blank(char *p)的功能为将指针p所指向的字符串中的空格给去掉。
#include<stdio.h>#define N 80main(){void delete_blank(char *p);char a[N],i; char *p;printf("Input a string:");gets(a);delete_blank(a);// void 调用delete_blank(char *p)函数puts(a);}void delete_blank(char *p){char *q;q=p;while(*q!='\0'){if(*q!=' '){p=p+1;}q++;}*p='\0';}
以下两段程序是分别用数组、指针来实现的统计一个字符子串sunstr在一个字符串str中出现的次数(如:字符子串boy在字符串that boy is a good boy!中出现2次)。
#include<stdio.h> // ⑴(用数组实现)main(){char str[100],substr[10];int i,j,k,count=0;printf("请输入字符串:str="); gets(str);printf("请输入字符子串:substr=");gets(substr);for (i=0;str[i]!='\0';i++) //判断是否到了字符串str的尾 for(j=i,k=0;substr[k]==str[j]; j++, k++) //判断substr是否是str的子串 if(substr[k+1]=='\0') {count++; //如果substr是str的子串,累计个数 break; }printf("%d",count); }
#include<stdio.h> // ⑵(用指针实现)main(){char str[100],substr[10],*p=str,*q=substr,*w;int i,j,k,count=0;printf("请输入字符串:str="); gets(p);printf("请输入字符子串:substr=");gets(q);for (p=str;*p!='\0';p++) for(w=p,q=substr;*q==*w;q++,w++) if(*(q+1)=='\0') { count++; break; }printf("字符子串%s出现了%d次\n",substr,count); }
指向二维数组的指针变量,画图理解!
#include <stdio.h>move(int *pointer) {int i,j,t;for(i=0;i<3;i++)for(j=i;j<3;j++){t=*(pointer+3*i+j);*(pointer+3*i+j)= *(pointer+3*j+i);*(pointer+3*j+i)=t;}}main(){int a[3][3]={1,2,3,4,5,6,7,8,9},*p=a[0],i;move(p);printf("调用函数后数组的各元素为:\n");for(i=0;i<3;i++)printf("%3d %3d %3d\n",a[i][0], a[i][1], a[i][2]);}
指针数组、指向指针的指针变量,画图理解!
#include<stdio.h>main(){ char *str[]={"English","Math","Music","Computer"},**q; int i; q=str; for(i=0;i<4;i++) printf("%s\n",*(q++));}
分别用选择法、冒泡法编写一个排序的函数void mysort(int*p,int n)。在主调函数中通过调用该函数,对指定的n个整数进行升序排列并输出。
include <stdio.h>main(){ void mysort(int *p,int n); int a[10],i; printf("输入10个待排序的数:\n"); for(i=0;i<10;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } mysort(a,10); printf("排序后的10个数:\n"); for(i=0;i<10;i++) printf("%3d",a[i]);}void mysort(int *p,int n) //选择法实现的排序{int i,j,k,t;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if(p[j]<p[k]) //小值往前移k=j;if(i!=k){t=p[i];p[i]=p[k];p[k]=t;}}}
#include <stdio.h>main(){ void mysort(int *p,int n); int a[10],i; printf("输入10个待排序的数:\n"); for(i=0;i<10;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } mysort(a,10); printf("排序后的10个数:\n"); for(i=0;i<10;i++) printf("%3d",a[i]);}void mysort(int *p,int n) //冒泡法实现的排序{int i,j,t;for(i=0;i<n-1;i++)for(j=0;j<n-i-1;j++){if(p[j]>p[j+1]){t=p[j];p[j]=p[j+1];p[j+1]=t;}}}
编写一个专门用于判断一个字符串是否为回文字符串的函数int ishuiw(char *p),在主函数中接受任意一串字符,通过调用该函数,给出是否是回文的结论。
#include <stdio.h>main(){ int ishuiw(char *p); char a[10],*p=a; printf("输入字符串:");printf("\n"); gets(p); if(ishuiw(p))printf("是回文!\n"); elseprintf("不是回文!\n");}int ishuiw(char *p) {char *q;int flag=1;for(q=p;*q!='\0';)q++;q=q-1;for(;q>=p;p++,q--){if(*p==*q)continue;else{flag=0;break;}}return (flag);}
阅读全文
0 0
- 回顾大一·C语言编程6.1(2)+6.2(1)(2)(3)
- 回顾大一·C语言编程2.3(2)
- 回顾大一·C语言编程3.2(2)
- 回顾大一·C语言编程3.3(2)
- 回顾大一·C语言编程3.4(2)
- 回顾大一·C语言编程4.1(2)
- 回顾大一·C语言编程4.2(2)
- 回顾大一·C语言编程5.2(2)
- 回顾大一·C语言编程5.3(2)
- 回顾大一·C语言编程11.1(2)+11.2(1)(2)(2)(3)①(3)②+11.3(1)(2)+11.4(1)①②+11.4(2)
- 回顾大一·C语言编程2.3(1)
- 回顾大一·C语言编程3.2(1)
- 回顾大一·C语言编程3.3(1)
- 回顾大一·C语言编程3.4(1)
- 回顾大一·C语言编程4.1(1)
- 回顾大一·C语言编程4.2(1)
- 回顾大一·C语言编程5.2(1)
- 回顾大一·C语言编程5.3(1)
- Oracle数据库知识整理
- 版本控制工具(svn,git)
- 计算机英语基本词汇
- Javac 编译器
- 打开Eclipse提示“The default workspace “xxxx” is in use or cannot be created Please choose a different on
- 回顾大一·C语言编程11.1(2)+11.2(1)(2)(2)(3)①(3)②+11.3(1)(2)+11.4(1)①②+11.4(2)
- java内存模型JMM
- 细说setTimeout/setImmediate/process.nextTick的区别
- 运用python进行数据分析 -- numpy 1
- android NDK --java 与 C 语言之间传递数据
- Opencv3.2移植
- 动态规划之矩阵连乘最优化问题
- UVA
- 三维计算机视觉(五)--特征描述子