C语言编程:利用指针编写程序,求一维数组中的最大和最小的元素值
这个乍一看没有错误 但我把你打程序抄近TC运行了一下 发现不是像你说的那样的错误 及时第一位是最大的也会输出错误 无论怎么 输出的第一位都是24940 最小的也有错误 最小有时会输出最大
后来仔细看了一下 发现你后面一个for循环里有大错误 if语句是进行比较 就第一个if来说 你把a[0]与a[1]先进行比较 这里你用的是p=p+i; 就是使p指向p+i所指向的内存 但需要注意 假设我输入的一组数是 9 10 8 5 15 4 2 3 11 1 当进行第一次循环后 p会指向p+1 既然是用p=p+i; 这是p+1就变成了p 当计算机再进行循环至a[4] 也就是15时 就会有p=p+4; 而这时想对于刚开始时的指针p就已经不是指向你想要他指的那个数(也就是大的那个)了 此时的指针p与刚开始的比其实不是指向了p+4 而是指向了p+5 也就是4了
所以程序出现了这般错误
要改正的话只要把后面那个for循环换成如下程序段就可以了:
for(i=1;i<N;i++)
{
if(*p<a[i])
*p=a[i];
if(*t>a[i])
*t=a[i];
}
如果规定要用指针的话那可以再定义两个中间指针变量应该可以解决
只能说这么多了 太晚了 要睡觉了~~ 不然明天第一节课又没得上了
希望我的答案对你有帮助 嘿嘿!!
1、新建一个工程和.c文件,并且输入主函数和头文件。
2、定义全局变量。
3、定义变量类型。
4、用两个for语句给数组元素赋值。
5、调用求最小值的函数。
6、函数的总体流程如下图。
7、在主函数中输出结果,编译、运行,得到最后结果。
#include<stdio.h>
int main()
{
int a[111],max,min,*p,n,k=0;
p=a;//指针p指向数组a首地址
do{
scanf("%d",&n);
p[k++]=n;
}while(getchar()!='
');
max=min=p[0];
for(p=a;p<a+k;p++)
{
if(*p>max)
max=*p;
if(*p<min)
min=*p;
}
printf("max=%d,min=%d",max,min);
return 0;
}
用指针的方法处理:输入十个整数,将其中最小的数与第一个数交换,将最...
include <stdio.h> include <conio.h> void main(){ int i,min,max,temp,t1,t2,a[10],*p=a;for(i=0;i<10;i++)scanf("%d",p+i);min = a[0];max = a[0];t1=0;t2=0;for(i=0;i<10;i++){ if(min>a[i]){ min=a[i];t1=i;} if(max<a[i]){ max=a[i];t2...
C语言编程:利用数组和指针,将一个4*4的矩阵转置,并输出矩阵中的最大...
include<stdio.h>int sort(int a[4][4]){int i,j,k=0,t,max,m,n;int b[16];for(i=0;i<4;i++)for(j=0;j<4;j++){b[k]=a[i][j];k++;}for(i=0;i<4;i++)for(j=0;j<4;j++){a[i][j]=b[i+j*4];}max=a[0][0];for(i=0;i<4;i++)for(j=0;j<4...
c语言变量的地址和指针
指针在C语言中具有非常重要的意义和应用场景。首先,指针提供了对内存的直接操作能力,这使得C语言在底层编程和系统级开发中具有很高的灵活性和效率。其次,指针是实现动态内存分配、数据结构(如链表、树等)以及许多高级算法的基础。此外,指针还常用于函数参数传递中,以实现数据的共享和修改。通过学习和...
C语言用指针编程实现strcat函数的功能
1、首先打开vs2014,新建一个项目。2、添加头文件。3、添加main主函数。4、定义一个函数addTwoNumbers。5、在main函数定义a,b,sum。6、声明函数指针ptr_sum。7、将addTwoNumbers函数地址赋值给ptr_sum。8、运行程序,看看结果。
C语言编程、以函数方式用指针实现。将字符串s2的前n个字符连接到s1的...
C语言编程、以函数方式用指针实现。将字符串s2的前n个字符连接到s1的尾部 10 如果n大于s2的长度,则仅将s2全部复制即可。函数形式:int my_strncpy(char *s1,char *s2,int n),其中函数返回值为最终连接到s1的字符数。xxd520000 | 浏览1253 次 |举报 我有更好的答案...
C语言 必须用指针方法编程 输入一个一维实型数组,输出其中最大值...
1 创建数组;2 输入数组各个元素值;3 遍历,求最大,最小,和平均值;4 输出结果。为提高效率,其中2,3两步可在同一个循环中完成。代码如下:int main(){ float a[10]; int i; float *p, *pmax,*pmin, ave = 0; p = pmax= pmin = a; scanf("%f",p); for...
...二.实验内容: ⑴ 编写自定义子函数实现:利用指针实现求一维数组中全...
1.include "stdio.h"double getAve(int *a,int n){ int *p;int sum=0;for(p=a;p
c语言编程,提示输入一个字符串string,然后在string里面每个字母间加一...
1、定义和构造初始化,string 提供了很多构造函数,可以以多种方式来初始化string字符串。2、赋值,拼接字符串,string重载了 = + += 等多种运算符。3、访问字符操作,string可以按数组方式,以下标来访问。还可以用at()函数访问指定的字符。4、可以使用 STL 的接口,可以把 string 理解为一个...
论述C语言中指针的概念和作用,并举例说明
举例说明:int a=3;\/*定义一个整型变量a,并赋初值3*\/ int p;\/*定义一个指针变量P*\/ p=&a;\/*让p指向a的首地址,也就是a的地址*\/ 程序为a分配一个2个字节的存储单元,假如2个字节的地址分别为(ABCD1和ABCD2,唯一),那么p里面放的值就是ABCD1,不是3。这时可通过p直接引用a,实际...
c语言中的指针是啥?
指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构;能很方便地使用数组和字符串;并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是...
错亨欧必: #include "stdio.h"void main() {int a[10];int i,count=0; printf("请输入10个数组元素: \n"); for(i=0;i<10;i++){printf("%d : ",i+1);scanf("%d",&a[i]);} for(i=0;i<10;i++)count+=*(a+i); printf("数组元素和 = %d\n",count); }
安远县15837883917: C语言编程:用指针方法,编写一个函数,求矩阵主对角线所有偶数元素之和Sum.?
错亨欧必: int i; int sum = 0; //设矩阵为nXn矩阵,名为m for(i = 0; i < n; i++) if ( m[i][i] % 2 == 0 ) sum += m[i][i] printf("和为%d\n", sum);
安远县15837883917: C语言题,指针的题目,要求编写程序 - ?
错亨欧必: #include <stdio.h> void swap(int *x, int *y) { int tmp = 0; tmp = *x; *x = *y; *y = tmp; } int main() { int i = 0; int arr_size = 0; int max = 0, min = 0; int cur_max_pos = 0, cur_min_pos = 0; int a[8] = {0}; int *p = NULL; printf("Please input the size of array: ")...
安远县15837883917: 求助一题C语言程序,用指针的!?
错亨欧必: new2->next = i->next; i->next = new1; new1->next = new2;
安远县15837883917: c程序语言,指针,求编程实现 - ?
错亨欧必: #include <cstdio> #include <cstring> #include <cstdlib> #define LEN 10 #define STR_LEN 50 void newcopy(char *newword, char *oldword) { char tmp; while((tmp = *oldword) != '\0') { if(tmp >= 'A' && tmp <= 'Z') { *newword = tmp; ++newword; } ++...
安远县15837883917: 求一篇用C语言编写的使用数组和指针统计成绩的程序代码 - ?
错亨欧必: void main() {int a[8] = {75, 80, 83, 85, 86, 30, 0, 0};string name[] = {"数学", "物理", "外语", "政治", "体育"};string MeanLow[4];a[6] = (a[0] + a[1] + a[2] + a[3] + a[4]) / 5;char* strAve = (char*)malloc(10);MeanLow[...
安远县15837883917: 如何用C语言的指针编写下面程序?
错亨欧必: #include<stdio.h> int main() { int i; char a[256],*p; p=a; gets(p); for(i=0;*(p+i)!='\0';i++) { { if(*(p+i)>='0'&&*(p+i)<='9') printf("%c",*(p+i)); } } return 0; }
安远县15837883917: 编写一个简单的程序实现:利用指针实现求一维数组中全部元素的平均值; - ?
错亨欧必: //程序如下 #include <stdio.h> #define N 5float aver(float *p,int n) {int i;float sum=0;for(i=0;i<n;i++){sum+=*(p+i);}return sum/n; } void main() {float a[N];int i;for(i=0;i<N;i++){printf("输入第%d个数:",i+1);scanf("%f",&a[i]);}printf("平均数为:%.2f",aver(a,N)); }
安远县15837883917: C语言 写程序(用指针做)?
错亨欧必: 1: #include <stdio.h> #include <stdlib.h> int main() { int num[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}; int *p = num; int findnum; scanf("%d", &findnum); while (p < num + 15) { if (*p == findnum) break; p++; } if (p == num+15)...
安远县15837883917: 编写一个C语言程序,用于接收两个数组的值,要求用指向数组的指针实现. - ?
错亨欧必: *int arrayadd(int *a , int *b) { int *sum; for(int i,i{sum[i]=a[i]+b[i]; } return sum; } 没试,兴许能行,不大确定阿.