c语言用什么软件编辑,查找c语言答案的软件( 五 )


if(max==a[i][j])
printf("\a[%d][%d]=%d",i,j,max);
}
}
实验七 指针
一、 目的要求
1. 掌握指针的定义和使用指针变量;
2. 学会使用字符串的指针和指向数组的指针变量;
3. 学会使用指向函数的指针变量;
4. 按实验内容要求完成全程程序设计后才允许上机 。
二、 实验内容与步骤
设计一个函数 , 它有三个形参
(1) 被查找的字符串str;
(2) 待查找的字符xCh;
(3) 在字符串str中xCh出现的位置i=0 , 1 , …
它的返回值是在str中xCh 出现的次数(若str中无xCh , 则返回值=0)
三、 上机要求
1、 键入待查的字符xCh;
2、 键入被查的字符串str;
3、 调用该函数;
4、 打印它的返回值和出现的位置;
5、 允许重复执行 , 每次以清屏开始(用循环语句控制重复执行) 。
四、 提示
xCh在str出现位置应设计为一整型指针 , 以便记下0~N个位置(整数) 。
#include<stdio.h>
void main()
{
char temp;
int run(),j;
int (*prun)();
temp='Y';
while(temp!='N'||temp!='n')
{
if(temp=='Y'||temp=='y')
{
prun=run;
j=(*prun)();
if (j==0)
{
printf("Can Not Find The xCh! j=%d",j);
}
else
{
printf("\j=%d",j);
}
printf("\Parden>Y/N:");
fflush(stdin);
temp=getch();
}
if(temp=='N'||temp=='n')
break;
if(temp!='Y'&&temp!='y')
{
printf("Wrong!You can only put Y(N) or y(n)\Please put again(Y/N):");
fflush(stdin);
temp=getch();
}
}
}
int run (char xCh,char str[100],int i)
{
int j;
char *p;
clrscr();
printf("xCh=");
xCh=getch();
printf("%c\str=",xCh);
gets(str);
p=&str[0];
i=0;
j=0;
while(*p)
{
if (*p==xCh)
{
j++;
printf("xCh :%d\",i);
}
p=p+1;
i++;
}
return j;
}
Mian()版:
#include<stdio.h>
void main()
{
int i,j;
char xCh,str[100],*p,temp;
temp='Y';/*给temp赋初值Y , 防止第一个while循环无法运行*/
while(temp!='N'||temp!='n')/*如果temp不等于n或N时 , 进行循环*/
{
if(temp=='Y'||temp=='y')/*当temp为y或Y时 , 进行下列循环 , 用于进行题目要求的操作*/
{
clrscr();/*清屏*/
printf("xCh=");/*在屏幕输出提示xCh=*/
xCh=getch();/*从屏幕读取一个字符赋给xCh(getch()和getchar()的区别:前者只要输入一个字符就结束输入过程 , 后者需要按回车或空格后才结束输入过程)*/
printf("%c\str=",xCh);/*在屏幕xCh=后面输出刚才输入的xCh的值 , 并提示用户输入str(因为我们用getch() , 输入完字符后会自动结束xCh的输入进入下一指令的执行(在本题中 , 下一指令是:printf("%c\str=",xCh);) , 而不在屏幕输出刚才输入的字符)【不理解的话把该句改成{printf("\str=");}看看输出结果就知道了】*/
gets(str);/*输入str*/
p=&str[0];/*将指针地址指向str这个字符串的首字符位置*/
i=0;
j=0;
while(*p)/*当p所指向的字符不为空字符时 , 进行判断循环*/
{
if (*p==xCh)/*当p所指向的字符为所需寻找的xCh时 , 进行以下操作*/
{
i++;/*i自加1 , 用于累计str中xCh的数目*/


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。