當前位置:首頁 » 編程語言 » c語言復制數組是什麼
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言復制數組是什麼

發布時間: 2022-08-15 16:37:59

c語言,將已知數組內容復制到另一個新數組,使復制產生的新數組包含已知數組全部出現過的值,而又不重復。

數組裡面是整數嗎?根據你的代碼,有些錯誤需要指出:

  1. #define n 10; 這句話不用加分號,加了就錯了。

  2. for(i=0;a[j]!=a[i];i++)
    b[j]=a[j];

    這句話完全是演算法錯誤。

    你是想實現當不重復的輸入,如果你用a[i]和a[j]比,就不對了。

    假設輸入1234567891

    第一次,j=0,i=0;a[i]==a[j],所以循環跳出。

    第二次,j=1,i=0;a[j]!=a[i],所以b[j]=a[j],就是給b[1]賦值了,b[0]永遠沒有賦值,是吧?這就是錯誤所在。

    所以你要在前面加一句b[0]=a[0]。

  3. 還有問題就是你只要遇到重復的,就會跳出循環,然後對應的b[j]並沒有賦值,所以你的演算法還是有很大的問題。下面是我的代碼。


  4. #include<stdio.h>

  5. #define N 10

  6. void main()

  7. {

  8. int i,j,a[N],b[N];

  9. int index=0;//這個變數指向b的下標

  10. for(i=0;i<N;i++)

  11. {

  12. scanf("%d",&a[i]);

  13. }

  14. for(i=0;i<N;i++)//用i指向數組a的下標

  15. {

  16. for(j=0;a[i]!=b[j] && j<i;j++)//用j指向數組b的下標

  17. {

  18. }

  19. if(i==j)

  20. {

  21. b[index]=a[i];

  22. index++;

  23. }

  24. }

  25. for(i=0;i<index;i++)

  26. {

  27. printf("%d ",b[i]);

  28. }

  29. }

Ⅱ c語言問題,將一個字元數組復制給另一個字元數組

你可以去看一看c語言關於字元串的知識,很有用的。
strcpy函數就是將一個字元串拷貝到另一個字元數組,還有很多好用的函數。

Ⅲ c語言 復制數組

strcpy(t[i],a[j],n);該語句的意思是:將某已知二維數組a的第j行前n個字元復制到另一個二維數組t的第i行中。給分吧

Ⅳ c語言如何實現多維整型數組的復制

memcpy(目的地址,源地址,位元組數)
由於數組元素為連續內存存放
可以使用此函數,將源地址的內存內容,復制到目的地址去,位元組數為sizeof(數組名)

Ⅳ c語言 將一個數組里的字元串復制到另一個數組中

比如源字元串是s,要復制到另一字元串t中,這里必須滿足t能放得下s的全部元素,否則將會有危險發生。舉例代碼如下:
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
char *s="The quick brown fox jumps over a lazy dog. 1234567890";
char *ps=s,t[60],*pt=t;
while(*pt++=*ps++);//這就把s全部復制給t了
printf("%s\n",t);//打出來看看...
return 0;
}

Ⅵ 用C語言編寫一個程序,將一個數組中的元素復制到另一個數組中

#include <stdio.h>

int main()
{
int i, array1[5], array2[5];

printf("請輸入第一個數組:");
for(i=0; i<5; i++)

scanf("%d", &array1[i]);

printf("\n第二個數組:");
for(i=0; i<5; i++)
{

array2[i] = array1[i];
printf("%d ", array2[i]);

}

return 0;

}

Ⅶ C語言中如何復制數組的內容

C語言中復制數組的內容源代碼如下:

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#define SIZE 10

void show_array(const int ar[], int n);

int main()

{

int values[SIZE] = {1,2,3,4,5,6,7,8,9,10};

int target[SIZE];

double curious[SIZE / 2] =

{2.0, 2.0e5, 2.0e10, 2.0e20, 5.0e30};

puts("memcpy() used:");
puts("values (original data): ");
show_array(values, SIZE);
memcpy(target, values, SIZE * sizeof(int));
puts("target ( of values):");
show_array(target, SIZE);
puts(" Using memmove() with overlapping ranges:");
memmove(values + 2, values, 5 * sizeof(int));
puts("values -- elements 0-5 copied to 2-7:");
show_array(values, SIZE);
puts(" Using memcpy() to double to int:");
memcpy(target, curious, (SIZE / 2) * sizeof(double));
puts("target -- 5 doubles into 10 int positions:");
show_array(target, SIZE/2);
show_array(target + 5, SIZE/2);
system("pause");
return 0;
}
void show_array(const int ar[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", ar[i]);
putchar(' ');
}

(7)c語言復制數組是什麼擴展閱讀

1、C語言編程中,將常用的操作封裝成函數進行調用,可以大大簡化程序的編寫,而且在代碼的維護性及可讀性方面也提供了便利。

2、不同地方需要對處理後的數組內容多次進行顯示,並且很多情況下並非顯示數組裡面的全部內容,而僅僅是想觀察數組中的部分數據內容,若每次顯示時都用printf函數寫的話,可以寫一個自定義的通用函數,用來根據需要顯示數組中的內容。

Ⅷ C語言 復制一個數組到另外一個數組的問題 哪裡出錯了呢

#include <stdio.h>
#define SIZE 5
double _arr(double sou[],double tar1[],int n);
int main(void)
{
double source[SIZE]={1.1,2.2,3.3,4.4,5.5};
double tar1[SIZE];
_arr(source,tar1,SIZE);
return 0;
}
double _arr(double sou[],double tar1[],int n)
{
int i;
for(i=0;i<n;i++)
{
tar1[i]=sou[i];
printf("%lf ",tar1[i]);
}
}

注意子函數形參,要和你主函數代入的參數一致。
前兩參都是double型的數組,所以聲明聲明和定義時要加
double 參數名[]。
或者用樓上的所說加*號,指針形式,不過猜想你可能還沒學到指針。

Ⅸ C語言中怎麼把一維數組賦給另外一個一維數組

不可以,之所以不可以是因為數組名是個常量,它的值是數組首元素地址,即不能將其它值付給這個常量。

可以採用循環的方法逐個復制,或者採用另一個同類型的指針(相對於數組名,指針是變數)指向要復制的數組,之後就可以採用這個指針訪問之前的那個數組。

(9)c語言復制數組是什麼擴展閱讀:

當數組中每個元素都只帶有一個下標時,稱這樣的數組為一維數組。

一維數組是由數字組成的以單純的排序結構排列的結構單一的數組。一維數組是計算機程序中最基本的數組。二維及多維數組可以看作是一維數組的多次疊加產生的。數組是計算機編程中的重要概念,運用數組可以方便地處理大規模的數據。

Ⅹ C語言指針問題,數組復制

*(a2+i)是數組a2[]的第i+1個元素
*a2+i只是數組a2[]的第一個元素的值加上i
你拿這個去賦值當然會便宜錯誤
就好比你定義一個int
a=5;
你可以用a去重新賦值,但你不能用a+1去賦值一樣
雖然你用
*(a2+i)
=
*a1+i;去編譯是不會報錯的
但是得不到你想要的結果