向前c語言
① c語言修改數組向前挪動首地址,如何釋放原先前面幾個元素
19號上映的,有人想要資源不
② C語言:先輸入1位數n,再輸入整數m,在m中找n,找到輸出n和在m中的由後向前的位置(要求見下),咋編程
代碼文本:
#include "stdio.h"
int main(int argc,char *argv[]){
int n,m,i,t,k;
printf("Please enter the n and m ");
if(scanf("%d%d",&n,&m)==2 && n>=0 && n<10){
for(k=0,i=1,t=m;t;t/=10,i++)
if(t%10==n)
printf("%d %d ",n,k=i);
if(!k)
printf("Not found %d... ",n);
}
else
printf("Input error, exit... ");
return 0;
}
③ C語言中,fseek函數怎麼控制移動的方向怎麼往前或往後,最好能有個例子。 謝謝!
fseek有三個參數,第1個是文件句柄,通過打開文件時得到;第2個就是移動的位元組數,這個數可以是正的,就是向後(文件尾部)移動,也可以是負的,即向前(文件頭部)移動;第3個參數指明從哪裡移動,如果寫SEEK_SET就是從文件頭部移動多少位元組,如果寫SEEK_END則是從尾部開始移動,SEEK_CUR則是從當前位置移動。
比如
要將文件指針移動到文件開始的第24位元組位置:fseek(fp,24,SEEK_SET);
移動到文件尾部向前50位元組:fseek(fp,-50,SEEK_SET);
在當前位置移動8個位元組(跳過8個位元組數據):fseek(fp,8,SEEK_CUR);
在當前位置向前移動16個位元組(准備重新讀取數據):fseek(fp,-16,SEEK_CUR);
④ c語言中文件指針每讀一個數據就會自動向前一位嗎
會的。
向前說法並不準確, 因為前後沒有明確的規則。
應該說是向文件尾移動一位。
⑤ C語言中文件指針怎樣向前移動一個位元組
你是用C標准I/O庫函數的話,
(1)文件定位:
文件定位指讀取或設置文件當前讀寫點,所有的通過文件指針讀寫數據的函數,都是從文件的當前讀寫點讀寫數據的。
常用的函數有:
#include <stdio.h>
int fseek(FILE *stream, long offset, int whence);
fseek 設置當前讀寫點到 offset 處,
whence 可以是 SEEK_SET,SEEK_CUR,SEEK_END,這些值決定是
從文件頭、當前點和文件尾計算偏移量 offset.
你可以定義一個文件指針FILE *fp,當你打開一個文件時,文件指針指向開頭,
你要指到多少個位元組,只要控制偏移量就好,例如
相對當前位置往後移動一個位元組:fseek(fp,1,SEEK_CUR);中間的值就是偏移量。
如果你要往前移動一個位元組,直接改為負值就可以:fseek(fp,-1,SEEK_CUR)
⑥ 怎麼用C語言實現向前向後差分演算法
沒有初始化low,就會報運行時錯誤,初始化一下low就好了
#include
"stdio.h"
#define
List_Size
20
struct
RecordType
{
int
key;
//簡單查找
char
otherkey;
};
struct
RecordList
{
RecordType
r[List_Size+1];
int
length;
}list1,*p;
void
init_list()
{
int
i;
//初始化數據
p=&list1;
for(i=0;i<List_Size+1;i++)
{
p->r[i].key
=i;
p->r[i].otherkey
=i+1;
}
p->length
=List_Size+1;
for(i=0;i<List_Size+1;i++)
//確認初始化數據
{
printf("list.r[%d].key=%d,list.r[%d].otherkey=%d\n",i,p->r[i].key,i,p->r[i].otherkey);
}
printf("list.length=%d\n",p->length);
}
int
BinSrch(RecordList
L,int
k)
//二分差演算法
{
int
low,high,mid;
int
i=0;
low
=
0;
//初始化low
high=L.length-1;
while(low<=high)
{
mid=(low+high)/2;
if(k==L.r[mid].key)
{
i=mid;break;
}
else
{
if(k
<
L.r[mid].key)
{
high=mid-1;
}
else
low=mid+1;
}
}
//
if((low==high)&&(k!=L.r[mid].key))
//
{
//
return
(0);
//
}
return
(i);
}
void
main()
{
int
result=0;
p=&list1;
init_list();
result=BinSrch(list1,7);
printf("the
reslut=%d",result);
getchar();
}
⑦ C語言中文件指針怎樣向前移動一個位元組
你是用C標准I/O庫函數的話,
(1)文件定位:
文件定位指讀取或設置文件當前讀寫點,所有的通過文件指針讀寫數據的函數,都是從文件的當前讀寫點讀寫數據的。
常用的函數有:
#include
<stdio.h>
int
fseek(FILE
*stream,
long
offset,
int
whence);
fseek
設置當前讀寫點到
offset
處,
whence
可以是
SEEK_SET,SEEK_CUR,SEEK_END,這些值決定是
從文件頭、當前點和文件尾計算偏移量
offset.
你可以定義一個文件指針FILE
*fp,當你打開一個文件時,文件指針指向開頭,
你要指到多少個位元組,只要控制偏移量就好,例如
相對當前位置往後移動一個位元組:fseek(fp,1,SEEK_CUR);中間的值就是偏移量。
如果你要往前移動一個位元組,直接改為負值就可以:fseek(fp,-1,SEEK_CUR)
⑧ c語言中向前進一格是啥符號
我知道向後退一格的: \b 例如:
printf("\b-");
Sleep(1);
printf("\b\\");
Sleep(1);
printf("\b|");
Sleep(1);
printf("\b/");
Sleep(1);
⑨ C語言指針從向前移一下
50 以fwrite寫入4個int值。
也就是寫入8個位元組的ascii碼值。
然後 fseek實際上是一個錯誤的寫法。應該是
fseek(fp,2L*sizeof(int), SEEK_END);
不能是-2.
這里是把文件定位到結尾最後兩個int型空間之前。也就是
3的前面
然後讀一個到b, b=3
選D
⑩ 怎麼用C語言實現向前向後差分演算法
沒有初始化low,就會報運行時錯誤,初始化一下low就好了
#include "stdio.h"
#define List_Size 20
struct RecordType
{
int key; //簡單查找
char otherkey;
};
struct RecordList
{
RecordType r[List_Size+1];
int length;
}list1,*p;
void init_list()
{
int i; //初始化數據
p=&list1;
for(i=0;i<List_Size+1;i++)
{
p->r[i].key =i;
p->r[i].otherkey =i+1;
}
p->length =List_Size+1;
for(i=0;i<List_Size+1;i++) //確認初始化數據
{
printf("list.r[%d].key=%d,list.r[%d].otherkey=%d\n",i,p->r[i].key,i,p->r[i].otherkey);
}
printf("list.length=%d\n",p->length);
}
int BinSrch(RecordList L,int k) //二分差演算法
{
int low,high,mid;
int i=0;
low = 0; //初始化low
high=L.length-1;
while(low<=high)
{
mid=(low+high)/2;
if(k==L.r[mid].key)
{
i=mid;break;
}
else
{
if(k < L.r[mid].key)
{
high=mid-1;
}
else
low=mid+1;
}
}
// if((low==high)&&(k!=L.r[mid].key))
// {
// return (0);
// }
return (i);
}
void main()
{
int result=0;
p=&list1;
init_list();
result=BinSrch(list1,7);
printf("the reslut=%d",result);
getchar();
}