我是靠谱客的博主 阳光月亮,最近开发中收集的这篇文章主要介绍C语言实例011,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

大家好,我是一童,N-S图先不画了,刚按好Visio,改天再说,哈哈哈。今天分享的内容大部分关于指针,分别是统计一句话中的单词数,简单的指针输出数组,利用指针逆序输出数组,二维数组的查询(利用指针变量p指向包含n个整形元素的一维数组)

1.字符数组的应用,单词数统计

#include <stdio.h>/*输入一句英文,用空格隔开,判断单词数*/
#define N 100
void main()
{
char str[N],c;
int i,num=0,word=0;
printf("请输入一句英文: ");
gets(str);
for(i=0;(c=str[i])!='';i++)//只要不按回车键,一直循环
if(c==' ')
word=0;//如果是空格字符,word置0
else if(word==0)//如果不是空格且word原值为0
{
word=1;//置1
num++;
}
printf("一共有%d个单词!n",num);
}

2.简单的指针输出数组

#include <stdio.h>
#define N 5
void main()
{
int i,a[N],*p;
puts("输入数组元素: ");
p=a;
for(i=0;i<N;i++)
scanf("%d",p++);
p=a;//注意!!!p的起始值是a+10,故重新赋值
puts("输出数组:n");
for(i=0;i<N;i++,p++)
printf("%d ",*p);
puts("n");
}

3.利用指针逆序输出数组

#include <stdio.h>//利用指针逆序输出数组
#define N 1000
void Lv(int a[N],int n);//函数声明
void main()
{
while(1)
{
int a[N],i,*p,n;
puts("请输入数组大小: ");
scanf("%d",&n);
puts("请输入数组元素:");
for(p=a;p<a+n;p++)
scanf("%d",p);
puts("n");
Lv(a,n);//函数调用
puts("逆序输出数组: ");
for(p=a;p<a+n;p++)
printf("%d",*p);
puts("n");
}
}
void Lv(int a[N],int n)//自定义函数
{
int *i,*j,*p,t,m=(n-1)/2;//m中间数
i=a;
j=a+n-1;
p=a+m;
for(i=a;i<=p;i++,j--)//i从左至右移动,j从右至左移动
{
t=*i;
*i=*j;
*j=t;
}
}
  1. 二维数组的查询
#include <stdio.h>//指针变量p指向包含n个整形元素的一维数组
#define ROWS 100
#define COLS 100
void main()
{
int a[ROWS][COLS],n,m,i,j,k,(*p)[COLS];
p=a;
printf("输入二维数组的行:");
scanf("%d",&n);
printf("n");
printf("输入二维数组的列:");
scanf("%d",&m);
printf("n请输入二维数组元素:");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
scanf("%d",*(p+i)+j);
}
printf("n输出二维数组:n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%d ",*(*(p+i)+j));
if(j%m==0)
printf("n");
}
printf("请输入你要查询数组的行和列:n");
printf("Row= ");
scanf("%d",&i);
printf("Col= ");
scanf("%d",&j);
printf("n您要查询的数值a[%d][%d]=%d",i,j,*(*(p+i-1)+j-1));
printf("n");
}

好了,今天先分享这些,有不懂滴 | | 写错滴 欢迎下方留言!!1

最后

以上就是阳光月亮为你收集整理的C语言实例011的全部内容,希望文章能够帮你解决C语言实例011所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部