一维数组编写函数顺序输出一维数组的所有元素

编写函数顺序输出一维数组的所有元素
直接引用方式和间接引用方式

来个for循环

void print1(int a[],int n)
{
    for(int i=0;i<n;i++)
        printf("%d ",a[i]);
}
void print2(int *a,int n)
{
    for(int i=0;i<n;i++)
    {
        printf("%d ",*a);
        a++;
    }
}

基于new bing部分指引作答:
可以使用以下两种方式编写函数,顺序输出一维数组的所有元素:

  1. 直接引用方式

直接引用方式是指函数通过传递数组名及数组长度来获得数组中的元素,并直接对数组进行引用。下面是一个使用直接引用方式输出数组元素的例子:

#include <stdio.h>

void printArray(int arr[], int len) {
    for (int i = 0; i < len; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main() {
    int myArr[] = {1, 2, 3, 4, 5};
    int len = sizeof(myArr) / sizeof(myArr[0]);
    printArray(myArr, len);
    return 0;
}

在这个例子中,我们声明了一个名为 printArray 的函数,它有两个参数:arr 参数是一个整型数组,len 参数表示该数组的长度。然后,在 main 函数中,我们定义了一个名为 myArr 的整型数组,将其初始化为 {1, 2, 3, 4, 5},并求出了数组的长度。最后,我们调用 printArray 函数,将 myArr 数组及其长度作为参数传入,实现了依次输出数组中元素的功能。

  1. 间接引用方式

间接引用方式是指函数通过传递数组的地址来获得数组中的元素,并通过指针对数组进行引用。下面是一个使用间接引用方式输出数组元素的例子:

#include <stdio.h>

void printArray(int *arrPtr, int len) {
    for (int i = 0; i < len; i++) {
        printf("%d ", *(arrPtr + i));
    }
    printf("\n");
}

int main() {
    int myArr[] = {1, 2, 3, 4, 5};
    int len = sizeof(myArr) / sizeof(myArr[0]);
    printArray(myArr, len);
    return 0;
}

在这个例子中,我们同样声明了一个名为 printArray 的函数,它有两个参数:arrPtr 参数是一个整型指针,len 参数表示该指针所指向的数组的长度。然后,在 main 函数中,我们定义了一个名为 myArr 的整型数组并初始化它。接下来,我们将 myArr 数组名作为参数传递给 `print

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7682587
  • 你也可以参考下这篇文章:编程实现从键盘输入一串字符串和一个字符,统计该字符串中指定字符出现的个数
  • 除此之外, 这篇博客: 使用指针方法实现字符串逆序存放后再输出;用指针方法编写一函数,实现两个字符串的比较中的 使用指针方法实现字符串逆序存放后再输出 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 编写程序:从键盘任意输入一个字符串,输出该字符串。然后,将该字符串逆序存放后再输出,要求用字符指针完成。(提示:逆序存放的函数接口:void invstr(char *s))

    #include<stdio.h>
    #include<string.h>
    void invstr(char *s)
    {
    	char b;
    	int len;
    	len=strlen(s); /*获取该字符串的长度*/ 
    	for(int i=0;i<len/2;i++){ /*该循环的目的是每次将字符串的头和尾换一下位置*/ 
    		b=*(s+i); /*字符串的第i个元素的地址暂时放到b里*/ 
    		*(s+i)=*(s+len-1-i); /*将字符串的倒数第i个元素换到第i个元素*/ 
    		*(s+len-1-i)=b; /*再将b存放的地址放回倒数第i个元素*/ 
    	}	
    }
    int main()
    {
    	char a[1000];
    	gets(a); /*输入字符串*/ 
    	printf("%s\n",a); /*正序输出一次*/ 
    	invstr(a); /*运行函数*/ 
    	printf("%s",a); /*逆序输出*/ 
     } 
    

    利用指针编程,用指针方法编写一函数,实现两个字符串的比较。编程点拨:即自己编写一个strcmp函数:strcmp(s1,s2),如果s1= s2,返回值为0,如果s1≠s2, 返回它们二者第一个不同字符的ASCII码差值(如"BOY"与"BAD", 第二个字母不同,"O"与"A"之差为79-65=14)。如果要s1>s2,则输出正值,如果s1<s2,则输出负值。

    #include<stdio.h>
    #include<string.h>
    void strcmp(char *s1,char *s2)
    {
    	int len,i=0,sum=0,lenmax;
    	lenmax = strlen(s1);
    	len = strlen(s2); 
    	if(lenmax < len){
    		lenmax = len;
    	}
    	for(i=0;i<lenmax and sum==0;i++){
    		if(*(s1+i) > *(s1+i)){
    			sum = *(s1+i) - *(s2+i);
    		}
    		if(*(s1+i) < *(s2+i)){
               sum = ( - (*(s1+i) - *(s2+i)));
    		}
    	}
    	printf("%d",sum);
    }
    int main()
    {
    	char s1[1000],s2[1000];
    	gets(s1);
    	gets(s2);
    	strcmp(s1,s2);
     } 
    
  • 您还可以看一下 孙玖祥老师的图解数据结构与算法课程中的 操作最后一个元素复杂度震荡问题的解决小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:
    def print_array(arr):
        """
        顺序输出一维数组的所有元素,包括直接引用方式和间接引用方式
        :param arr: 一维数组
        :return:
        """
        # 直接引用方式
        for i in arr:
            print(i)
        # 间接引用方式
        p = arr
        for i in range(len(arr)):
            print(p[i])