1.编一个程序,输入一个字符串存入一个字符数组,按相反次序输出其中的所有字符。要求用指向数组的指针变量来处理其中的字符。
2.编一个程序,输入10个实数存入一维数组,输出其中的最大值、最小值和平均值。要求用指向数组的指针变量来处理数组元素。
3.编一个程序,输入10个整数存入一个整型数组,然后在其中查找x,找不到则输出“no!”,找到则输出该数在数组中的前一个数和后一个数。若该数为第1个数,则只要输出后一个数;若该数是第10个数,则输出前一个数。待查数x由键盘输入。要求用指向一维数组的指针变量来处理数组元素。
#include<stdio.h>
#include<stdlib.h>
#define MAX 10
void ReverseOutput(char string[])
{
//统计总长度
char *c=string;
unsigned int counter = -1;
do
{
counter++;
c++;
}while((*c)!='\0');
printf("倒置输出的结果:\n");
for(c=&string[counter];c>=&string[0];--c)
{
printf("%c",*c);
}
}
void main()
{
int numbers[MAX];
int findnum;
char string[MAX];
int max,min;
double avg=0;
int *num=NULL;
unsigned int k=0;
printf("请输入一个字符串,系统倒置输出:");
scanf("%s",&string);
ReverseOutput(string);
printf("\n\n请输入10个数字:");
for(unsigned int i=0;i<MAX;++i)
{
printf("\n输入第%d个数字:",i+1);
scanf("%d",&numbers[i]);
num=&numbers[i];
if(i==0)
{
max=*num;
min=*num;
}
else
{
if(max<*num)
{
max=*num;
}
else if(min>*num)
{
min=*num;
}
}
avg+=*num;
num++;
}
printf("最大值:%d;最小值:%d;平均值:%lf\n\n",max,min,avg/10);
printf("输入一个要查找的数字,系统在刚才的数组中查找:");
scanf("%d",&findnum);
for(;k<MAX;++k)
{
if(numbers[k]==findnum)
{
break;
}
}
if(k<MAX)
{
if(k==0) {num=&numbers[++k];printf("后一个数字:%d",*num);}
else if(k==9) {num=&numbers[--k];printf("前一个数字:%d",*num);}
else
{
num=&numbers[k-1];
printf("前一个数字:%d\n",*num);
num=&numbers[k+1];
printf("后一个数字:%d\n",*num);
}
}
system("pause");
}