當前位置:首頁 » 編程語言 » c語言數組覆蓋
擴展閱讀
存儲器是什麼原因造成的 2022-08-12 23:08:51

c語言數組覆蓋

發布時間: 2022-06-27 02:06:04

c語言循環輸入字元串到數組時會替換掉上一次輸入數組的數據嗎

會覆蓋的!
但代碼有點問題:
while (gets(max) != EOF) 應該改成:

while ( gets(max) != NULL )

函數gets的原型為:char*gets(char*buffer);
在 stdio.h中定義,如果要程序中用到此函數需包含#include<stdio.h>
gets()函數用來從標准輸入設備(鍵盤)讀取字元串直至接受到換行符或EOF時停止結束,並將讀取的結果存放在buffer指針所指向的字元數組中,但換行符會被丟棄,然後在末尾添加'\0'字元。

② C語言中如果用%s向一個數組輸入了字元串,然後再用%s向這個數組輸入,會不會覆蓋掉剛才輸入的東西

當然要覆蓋掉之前輸入的東西!

③ c語言 gets()會不會把原數組的值全部覆蓋掉比如原數組中有1234四個字元,通過gets輸入abc,最終

你的原數組是這樣的{'1',
'2',
'3',
'4',
'\0'}
gets輸入abc後是這樣的{'a',
'b',
'c',
'\0',
'\0'}
gets函數會自動在讀取的字元串後加一個空字元。所以『4』被這個空字元覆蓋了

④ 請教高手,請問如何將兩個txt文本中的數組進行比較,並進行覆蓋形成新的文本(C語言)

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

#defineSum3

#defineMemsizeof(structzoom)

typedefstructzoom

{

floatcode[2];

charchar_code[10];

}Zoom_;

typedefstructctxt

{

floata;

charch[10];

}Zmm;

voidmain()

{FILE*fa,*fb,*fc;//分別對應a.txt,b.txt,c.txt

Zoom_box[Sum];//開始定義1個結構體數租含三個元素

floatbox2[Sum];//用來存放b.txt的值

Zmmbox3[Sum];

inti;

if((fa=fopen("a.txt","wb"))==0)

{printf("分配失敗");

exit(0);

}

printf("開始輸入,float,float,char型 ");

for(i=0;i<Sum;i++)

{

scanf("%f%f%s",&box[i].code[0],&box[i].code[1],box[i].char_code);

fwrite(&box[i],Mem,1,fa);

}

fclose(fa);//不能同時對文件進行讀寫操作

printf(" 開始輸入b.txt的值 ");

if((fb=fopen("b.txt","wb"))==0)

{printf("分配失敗");

exit(0);

}

for(i=0;i<3;i++)

{scanf("%f",&box2[i]);

fwrite(&box2[i],sizeof(float),1,fb);

}

fclose(fb);

printf(" 開始處理c.txt的數據 ");

if((fa=fopen("a.txt","rb"))==0)

{printf("分配失敗");

exit(0);

}

if((fb=fopen("b.txt","rb"))==0)

{printf("分配失敗");

exit(0);

}

if((fc=fopen("c.txt","wb"))==0)

{printf("分配失敗");

exit(0);

}

for(i=0;i<3;i++)

{

fread(&box[i],Mem,1,fa);

fread(&box2[i],sizeof(float),1,fb);

if(box2[i]>=box[i].code[0]&&box2[i]<=box[i].code[1]||box2[i]<=box[i].code[0]&&box2[i]>=box[i].code[1])

{box3[i].a=box2[i];

strcpy(box3[i].ch,box[i].char_code);

}

}

printf("a這個是文件a.txt的內容 ");

for(i=0;i<Sum;i++)

{

fread(&box[i],Mem,1,fa);

printf("%3.2f%3.2f%5s ",box[i].code[0],box[i].code[1],box[i].char_code);

}

fclose(fa);

printf("a這個是文件b.txt的內容 ");

for(i=0;i<Sum;i++)

{

fread(&box2[i],sizeof(float),1,fb);

printf("%3.2f ",box2[i]);

}

fclose(fb);

fclose(fc);

printf(" 這個是c.txt的內容 ");

if((fc=fopen("c.txt","rb"))==0)

{printf("分配失敗");

exit(0);

}

for(i=0;i<3;i++)

{

fread(&box3[i],sizeof(structctxt),1,fc);

printf("%3.2f%5s ",box3[i].a,box3[i].ch);

}

fclose(fc);

}

⑤ c語言要求數組刪除指定位置的數字,for語句裡面應該怎麼寫啊,怎麼覆蓋啊,不會

#include <stdio.h>#include <stdlib.h> //產生隨機數的頭文件
#include <time.h> //時鍾做種子。。。隨機數的
#define N 6
int main(){
double num[N];
double num_1=0;
int i=0;
int n=0, m=0;
for (; i<5; ++i)
{
num[i]= rand(); //i在這里應該是5吧,果然是5
}
printf("The first:\n");
--i;
while (i!= -1)
{
printf("%lf ",num[i]);
--i;
}
printf("\nPlease input the place and number:\n");
scanf("%d%lf",&m,&num_1);
n=m-1; //為了適應人們
for (i=5; i!=n; --i)
num[i]= num[--i];
num[n]= num_1;
printf("The nest:");
for (i=0; i<6; ++i)
printf("%lf ",num[i]);
putchar(10);
return 0;
}

⑥ 文本文件中有n組數,我要改變某一組數其中的值,怎麼覆蓋原值 。c語言。最好用數組實現,指針我不太會

文本文件中有n組數,我要改變某一組數其中的值,怎麼覆蓋原值 。c語言。最好用數組實現,指針我不太會?
可熱第二名

⑦ C語言,字元串數組的輸入輸出問題,以及如何被覆蓋

輸入:scanf("%d,%d,%d",&x,&y,&z);\\/\\/d為整形,字元為c;字元串為s;小數(或稱浮點型,實行)為f\r\n輸出:printf("%s\n",s);

⑧ c語言數組後面的數覆蓋前面的數

學習C語言,你得頭緒清晰變數的長度,特別是數組,如果定義的長度小於實際賦值的長度時,字元或數字就會往前擠,擠掉前面的分隔符和前面的數,就是你說的這種現象。
解決辦法:加大數組定義的長度。

⑨ C語言設計題,刪除數組的元素。只用C,最好是告訴我怎麼實現覆蓋,望大蝦幫幫忙吧。多謝留下代碼。

//源碼如下:
#include <stdio.h>
#include <conio.h>

void OutPut(int arr[], int cnt)
{
int index = 0;

printf("表數據: ");
while (index < cnt)
{
if (arr[index] != 0)
{
printf("%3d", arr[index]);
}

index++;
}

printf("\n");
}

void main()
{
int List[100] = {1,4,7,12,15};
int index = 0, elemCnt = 0, input = 0;
bool flag = false;
char YesOrNo = 'Y';

//輸出表長
while (index < 100)
{
if (List[index++] != 0)
{
++elemCnt;
}
}
printf("表長: %d\n", elemCnt);

//輸出表
OutPut(List, 100);

while (YesOrNo=='Y' || YesOrNo=='y')
{
//輸入
printf("輸入: ");
scanf("%d", &input);

//輸出
index = 0;
flag = false;
while (index < 100)
{
if (List[index] == input)
{
List[index] = 0;
flag = true;
}
index++;
}
if (flag)
{
OutPut(List, 100);
}
else
{
printf("數據不存在!\n\n");
}

printf("繼續,請輸入:Y或y, 否則,請輸入:N或n\n\n");

YesOrNo = getch();
if (YesOrNo == 'N' || YesOrNo == 'n')
{
break;
}
}
}

//運行結果:

⑩ c語言數組問題

問一:c語言開辟數組,如果裡面存的是整數,那麼沒有復制之前,數組中默認的值為零,還是亂碼。
答:C語言聲明數組變數時,只分配相應的空間和地址,而不對裡面存放的數據初始化。不管是int、float、還是char型等,即裡面存的無論是整數、小數還是字元,再沒有復賦值之前,數組中默認的值都是亂碼,而不是0(或其他已知的數字、字母或其他字元)。
問二:如果存的是字元值有事什麼情況呢?
答:也是亂碼。
問三:比如一維數組中的數據是2234456667,789,找出其中不同的數23456789,覆蓋給原數組,那麼原數組下標為8到之後後的值還存不存在?
答:沒太看明白你想說什麼。這就要看看你把新數據(元素)存放在哪兒了,已經被新覆蓋的元素比如前8個元素,其舊值已經不存在了,只要沒有覆蓋的元素比如8個以後的元素,其舊值仍然存在。
是不是這樣子?如還有問題請留言。