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

c語言實現lsl

發布時間: 2022-01-16 08:27:02

c語言:編程實現輸入,輸出

方法很多,我用數組實現。
定義20大小數組,下標加1就是1~20的數字,數組元素值就是輸入狀態。

#include<stdio.h>

#include<windows.h>

#include<conio.h>

void show(int *nums);

int main()

{

int nums[20]={0};//表示1到20個數字的狀態,0表示未被輸入,1表示已被輸入

int save[19],*p=save,n=19,in=0,flag;

while(n--)

{

flag=1;

system("cls");

show(nums);

printf("請輸入一個數字(1~20):"),scanf("%d",&in);

while(in<1 || in>20 || nums[in-1]==1)

{

if(in<1 || in>20)

printf("輸入錯誤!只能輸入1~20的整數!...按任意鍵重新輸入... "),getch();

else if(nums[in-1]==1)

printf("輸入錯誤!數字%d已輸入,不能重復!...按任意鍵重新輸入... ",in),getch();

flag=0;

n++;

break;

}

if(flag)

*p=in,nums[in-1]=1;

}

return 0;

}

void show(int *nums)

{

int i;

printf("已輸入數字:");

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

if(nums[i])

printf("%d ",i+1);

printf(" 未輸入數字:");

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

if(!nums[i])

printf("%d ",i+1);

printf(" ");

}

⑵ 如何用c語言實現下列運算

建立一個類; 我沒調試,但是思路是這個,你補全一下就可以了
class complex
{
private:
double r; //實部
double v; //虛部;
char cplx[20]; //復數;
public:
complex(){};
complex(double r,double v)
{
sprintf(cplx,"%f+%f*i",r,v);
}
complex(char *cplx)
{
this->cplx=cplx;
char temp[20],temp2[20];
char *p;
strcpy(temp,cplx);
p=strstr(temp,"+"); //r+v*i;查找+號的位置
if(p==NULL) //如果沒找到,說明虛部<0;找"-";
p=strstr(temp,"-");
if(p==NULL) //如果沒有,說明虛部為零,或者實部為零;
{
if(strstr(temp,"i")==NULL)
r=atof(temp);
else
{
p=strstr(temp,"*");
memset(temp2,'\0',sizeof(temp2));
strncpy(temp2,temp,p-temp-1);
v=atof(temp2);
}
}
else
{
strncpy(temp2,temp,p-temp-1);//實部;
r=atof(temp2);
//......後面的自己補充一下吧;
}
}
char *create()
{
cin>>r;
cin>>v;
complex(r,v);
return cplx;
}
complex *operator+(const complex c1,const complex c2)
{
r=c1.r+c2.r;
v=c1.v+c2.v;
complex(r,v);
return this;
}
complex *operator-(const complex c1,const complex c2)
{
}
complex *operator*(const complex c1,const complex c2)
{
}
double get_real()
{
return r;
}
double get_virtual()
{
return v;
}
};

⑶ C語言編程實現

所有轉換
一個函數實現
原來貼的有點問題
改了
#include<stdio.h>
#define size 64
void transform(int n1,char c[size],int n2)
{
int a[size]={0},j,i=0;
long int num=0;
if(n1>10)
{
while(c[i])
{
if(c[i]>='0'&&c[i]<='9')
num=num*n1+c[i++]-48;
else if(c[i]>='A'&&c[i]<='Z')
num=num*n1+c[i++]-55;
else if(c[i]>='a'&&c[i]<='z')
num=num*n1+c[i++]-87;
else
{
puts("error\n");
return;
}
}
i=0;
}
else
while(c[i])
{
if(c[i]<'0'||c[i]>'9')
{
puts("error\n");
return;
}
num=num*n1+c[i++]-'0';
}

i=0;
while(num!=0)
{
a[i++]=num%n2;
num/=n2;
}
printf("(%s)%d轉換為:\n(",c,n1);
if(n2<10)
{
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
printf(")%d\n",n2);
}
else
{
for(j=i-1;j>=0;j--)
if(a[i]>=10)
printf("%c",a[j]+55);
else
printf("%d",a[j]);
printf(")%d\n",n2);
}

}
main()
{
int n1,n2;
char c[size]={0};
do
{
puts("輸入現在數的進制類型:\n");
scanf("%d",&n1);
puts("輸入需要轉換的數據:\n");
scanf("%s",c);
puts("輸入目標數的進制類型:\n");
scanf("%d",&n2);
transform(n1,c,n2);
puts("輸入y繼續,按任意鍵退出:\n");
getchar();
}while(getchar()=='y');
}
這個程序有錯誤提示
還有好可以實現16進制之內的任意進制數的相互轉換
我真不想拿上來
如果不明白
留言
必回

⑷ C語言實現隊列的基本操作



structpQueue
{
ElemType*head;//指向開辟的空間的首地址
Elemtype*tail;
intlength;//(總容量)
intL_now;//(當前容量)
};
if(pQueue.L_now==pQueue.length)
{
每次申請空間都是+N
}
pQueue->tail=p;

⑸ 編寫C語言程序實現下述功能

根據你的要求,只要將以下代碼寫入程序即可實現你說的功能,具體如下:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

#define LIST_INIT_SIZE 20
#define LISTINCREMENT 10

struct myList
{
int elem;
int length;
int listsize;
};
int InitList(myList&L)
{
L.elem=(int*)malloc(LIST_INIT_SIZE*sizeof(int));
if(!L.elem)
{
exit(0);
}
L.length=0;
L.listsize=LIST_INIT_SIZE;
return 1;
}
int ListInsert(myList &L,int i,int x)
{
int *newbase,*p,*q;
if(i<1||i>L.length-1)
{
return -1;
}
if(L.length>=L.listsize)
{
if(!(newbase=(int*)realloc(L.elem,(LIST_INIT_SIZE+LISTINCREMENT)*sizeof(int))))
exit(0);
L.elem=newbase;
L.listsize+=LISTINCREMENT;
}
p=L.elem+i;
for(q=L.elem+L.length-1;q<=p;--q)
{
*(q+1)=*q;
}
*p=x;
++L.length;
return 1;
}
int ListDelete(myList &L,int i)
{
int *newbase,*p,*q;
if(i<1||i>L.length-1)
{
return -1;
}
if(L.length<1)
{
return -1;
}
p=L.elem+i;
for(q=p;q<=L.elem+L.length-1;++q)
{
*q=*(q+1);
}
--L.length;
return 1;
}
int main(void)
{
int n,i,x;
SqList L;
InitList(L);
printf("請輸入線性表L的長度:\n");
scanf("%d",&n);
printf("請輸入數據:\n");
for(i=0;i<n;i++)
{
scanf("%d",&L.elem[i]);
}
printf("順序表的元素有:\n");
for(i=0;i<n;i++)
{
printf("%d ",L.elem[i]);
}
printf("\n");
printf("請輸入插入位置i:\n");
scanf("%d",&i);
ListInsert(L,i,4);
printf("插入後的線形表:\n");
for(i=0;i<=n;i++)
{
printf("%d ",L.elem[i]);
}
printf("請輸入刪除位置i:\n");
scanf("%d",&i);
ListInsert(L,i);
printf("刪除後的線形表:\n");
for(i=0;i<=n;i++)
{
printf("%d ",L.elem[i]);
}
return 0;
}

⑹ 基於linux的ls命令的c語言實現

system("ls");

⑺ 如何用C語言實現下面的排列組合(急,謝謝)

不會是彩票吧?3個奇數4個偶數你先分兩組,9個奇數里取3個,7個偶數里取4個
再一乘起來,一共是84x35=2940組

⑻ C語言程序實現

#include<stdio.h>
#include<stdlib.h>
voidprintsecplus(charconst*time)
{
inth=atoi(time);
intm=atoi(time+3);
ints=atoi(time+6);
++s>59
&&(s-=60,++m>59)
&&(m-=60,++h>23)
&&(h-=24);
printf("%02d:%02d:%02d ",h,m,s);
}
intmain()
{
printsecplus("23:59:59");
printsecplus("22:59:59");
printsecplus("23:58:59");
printsecplus("23:58:58");
return0;
}

⑼ c語言的實現

#include<stdio.h>
#include<malloc.h>
#define NULL 0

struct node
{
int data;
struct node *next;
};

struct node *head,*head_a;

struct node *create()
{
struct node *tail, *p;
int x;
head=tail=NULL;
printf("\n請輸入一個整數:\n");
scanf("%d",&x);
while(x!=0)
{
p=(struct node *)malloc(sizeof(struct node));
p->data=x;
p->next=NULL;
if(head==NULL)
head=tail=p;
else
{
tail->next=p;
tail=p;
}
printf("\n請輸入一個整數:\n");
scanf("%d",&x);
}
return(head);
}

struct node *unite(struct node *a,struct node *b)
{
struct node *ha;
ha=head_a;
while(ha->next!=NULL)
ha=ha->next;
ha->next=head;
return(a);
}

void sortf()
{
struct node *p;
int temp;
L: p=head_a;
p=head_a;
while(p->next!=NULL)
{
if(p->data>p->next->data)
{
temp=p->data;
p->data=p->next->data;
p->next->data=temp;
}
p=p->next;
}

p=head_a;
while(p->next!=NULL)
{
if(p->data>p->next->data)
{
goto L;
}
p=p->next;
}
// return(a);
}

void main()
{
struct node *A,*B,*C,*LA;
printf("\n請輸鏈表A的值,以0結束:\n");
LA=head_a=A=create();
printf("\n請輸鏈表B的值,以0結束:\n");
B=create();
/////////////////////////////
printf("\n鏈表A的值:\n");
while(LA!=NULL)
{
printf("%d\t",LA->data);
LA=LA->next;
}

C=unite(A,B);

printf("\n鏈表B的值:\n");
printf("\n");
while(B!=NULL)
{
printf("%d\t",B->data);
B=B->next;
}
printf("\n鏈表C的值:\n");
printf("\n");

LA=head_a;
while(LA!=NULL)
{
printf("%d\t",LA->data);
LA=LA->next;
}
printf("\n");

printf("\n經過排序後鏈表C的值:\n");
printf("\n");

sortf();
LA=head_a;
while(LA!=NULL)
{
printf("%d\t",LA->data);
LA=LA->next;
}
printf("\n");
}

幾經波折才算搞清楚..弄出來了!!!!!!!!!!!!!!!