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

c語言數組成塊搬移數據

發布時間: 2022-03-06 06:49:01

A. c語言結構體數組怎麼交換數據呀!

結構體如果都要集體交換的話,建議使用 memcpy(); 這個函數,新建個中間結構體.. 就可以了, 這個函數有3個參數,具體請網路

B. c語言中怎麼把一個數組的值賦到另一個數組中

#include "stdio.h"

void fun1(double str1[],int length) {
int i, j;
double temp;
for(i = 0; i < length; ++i) {
for(j = length - 1; j > i; --j) {
if(str1[j] > str1[j - 1]) {
temp = str1[j];
str1[j] = str1[j - 1];
str1[j - 1] = temp;
}
}
}

for(i = 0; i < length; ++i) printf("%.1f ",str1[i]);
}

void fun() {
double str[]= {-53,22,223,100,18.0,309,-10,209,101,900,-77,50};
fun1(str,sizeof(str)/sizeof(str[0]));
}

int main() {
fun();
}

C. C語言中,有什麼方法可以把變化的數據傳送到數組裡面呢求高人指點

傳遞的方法只有兩種,一個是變數,一個是指針,兩者的共同點是,只有一個「量」,如果以值傳送的方式傳送數組,則必然涉及到多個量被傳遞,就很難用傳值的方法來傳遞,所以,用數組指針作為參數傳遞顯得清晰,方便。

D. C語言數組數據換位問題

你把程序寫復雜了,我給你改成這樣
#include <stdio.h>
#define N 80
void fun(int *arr, int pos, int num)
{
int i = 0;
int temp = 0;
while (0 < pos)
{
temp = arr[0];
for (i = 0; i < num; i++)
arr[i] = arr[i + 1];
arr[i-1] = temp;
pos--;
}
}

main()
{
int a[N] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
int i, p, n = 15;
printf("The original data:\n");
for (i = 0; i < n; i++)
printf("%3d", a[i]);
printf("\n\nEnter p: ");
scanf("%d", &p);
fun(a, p, n);
printf("\nThe data after moving:\n");
for (i = 0; i < n; i++)
printf("%3d", a[i]);
printf("\n\n");
}

E. C語言中用數組開辟一塊足夠的空間,實現向數組中進行數據的添加,插入,刪除,排序等功能。

你可以用宏來定義數組的大小
#define MAX 10000

datatype arr[MAX];

MAX的值可以隨便你指定.

F. C語言如何對數組中的數據進行處理

類似下面簡單處理下
#include"stdlib.h"
#include"stdio.h"
#include"string.h"

charrecord[100][5][16];
intcnt=0;
#defineIS_ALPHA(a)((a>='a'&&a<='z')||(a>='A'&&a<='Z')||(a>='0'&&a<='9')||(a=='_'))
char*get_record(char*str){
inti=0,j=0;
if(cnt>=100)returnNULL;
while(1){
if(IS_ALPHA(*str)){
if(j<15)
record[cnt][i][j++]=*str;
}
else{
if(j){
record[cnt][i][j++]=0;
j=0;
i++;
}
if(*str==0||i==5)break;
}
str++;
}
//addornot
if(i==5){
intn=cnt;
for(i=0;i<cnt;i++){
if(strcmp(record[i][0],record[cnt][0])==0&&
strcmp(record[i][1],record[cnt][1])==0){
if(atoi(record[i][4])<atoi(record[cnt][4])){
strcpy(record[i][4],record[cnt][4]);
}
n--;
break;
}
}
cnt=n+1;
}
return(*str?str:NULL);
}

voidprint_record(){
inti;
for(i=0;i<cnt;i++){
printf("%s%s%s%s%s ",
record[i][0],record[i][1],record[i][2],record[i][3],record[i][4]);
}
}

intmain(){
charstr[]="
DN100CDN_100123
DN100CDN_200216
DN100CDN_100106
DN100CDN_300106
DN100CDN_300107
DN100CDN_200218";
char*s=str;
while(s=get_record(s)){}
print_record();
return0;
}

G. C語言中,關於數組中數據轉存的問題。。。編譯環境為keil

就實際使用的情況而言,你的這種思路就是錯誤的。
實際上「足夠大的數組」就是由若干個「緩沖區數組」組成,每次進中斷以指針方式調用一個緩沖區數組並搬移數據,完事之後指針移動就行了。

H. 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(' ');
}

(8)c語言數組成塊搬移數據擴展閱讀

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

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

I. C語言中,如何把數組里的數據寫入文件

使用for循環語句+文件操作函數即可把數組里的數據寫入文件。

1、C語言標准庫提供了一系列文件操作函數。文件操作函數一般以f+單詞的形式來命名(f是file的簡寫),其聲明位於stdio.h頭文件當中。例如:fopen、fclose函數用於文件打開與關閉;fscanf、fgets函數用於文件讀取;fprintf、fputs函數用於文件寫入;ftell、fseek函數用於文件操作位置的獲取與設置。一般的C語言教程都有文件操作一章,可以找本教材進一步學習。
2、常式:

#include<stdio.h>
inti,a[100];
intmain(){
FILE*fp1=fopen("input.txt","r");//打開輸入文件
FILE*fp2=fopen("output.txt","w");//打開輸出文件
if(fp1==NULL||fp2==NULL){//若打開文件失敗則退出
puts("不能打開文件!");
rturn0;
}
for(i=0;fscanf(fp1,"%d",a+i)!=EOF;i++);//從輸入文件連續讀取整數到數組a
for(;i--;)fscanf(fp2,"%d",a[i]);//把數組a逆序寫入到輸出文件當中
fclose(fp1);//關閉輸入文件
fclose(fp2);//關閉輸出文件,相當於保存
return0;
}

J. C語言中如何將double型數據轉換為數組

思路是:
先將Double型的數字整數部分變為整型數字一一取到數組中去(用循環整除可以做到,比如double i=123.456,就可以先把整數部分用j=(int)i強制類型轉換取出放入整型變數j中,再依次取到數組a中
(a[k++]=i%10;i/=10;)
這兩句語句就可以做到(不過數字是倒序的,最後輸出時要注意)。
再看小數部分,同理,但不用除法,而用乘法,先去除整數部分
(j=j-(int)j;)
再將小數部分不斷的乘10取整,取一位去除一位,存入另一數組:
l=(int)(j*10);
b[k++]=l;
j=j*10-l;...直到j*10==0為止
這樣就可以把j中的數按位取到了兩個數組中,接下去只要將兩數組合並到C數組中去,或者依次輸出整數部分和小數部分,中間別忘加小數點,輸出成字元在C語言里可以這樣:
printf("%c",a[i]+'0');
printf(".");
printf("%c",b[i]+'0');

以上就是我的演算法,請高手看了不要笑話,希望能給樓主帶來啟發。