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

c語言表示有二組數據

發布時間: 2022-12-22 12:21:26

A. 急!!!c語言:輸出兩組數組中相同的數字

//示例代碼如下
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intm,n,i,j,flag=0;
int*pm,*pn;
scanf("%d%d",&n,&m);
pm=(int*)malloc(sizeof(int)*m);
pn=(int*)malloc(sizeof(int)*n);
for(i=0;i<m;i++)
scanf("%d",pm+i);
for(i=0;i<n;i++)
scanf("%d",pn+i);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
if(pm[i]==pn[j]){
printf("%d",pn[j]);
flag=1;
}
}
if(!flag)
printf("NO ");
printf(" ");
free(pm);
free(pn);
return0;
}

//示例運行結果
F:c_work>a.exe
57
5917123698
789161792698
917698

B. c語言中如何輸入一組數據,輸出case1;輸入兩組數據,這兩組數據分別輸出case1,case2

這簡單,用一兩個
if
加個循環
就行了
主要是你的數據數量怎麼分割的,如果是滿足輸入某個分隔符,(#


或回車之類的)
再分割的話,可以考慮用字元數組,

getchar()
當(ch=getchar())不等於限定分隔符時就繼續讀取,輸出的時候也逐個輸出,當輸出了分隔符之後在輸出一個或兩個回車(如果以回車為分隔符的話只需一個),這樣就可以實現每兩組數據之間有一個空行。
如果你是以數據的數量來界定每一組數據的話,那更簡單咯。先設定一個計時器
假設是
j
j
從0開始
,當
j
等於每組數據上限的話就輸出兩個回車,再把
j
歸零

C. c語言兩組數據的間隔怎麼算的

%3d表示右對齊,左補空格,所以0(一位數)輸出時,前面會有2個空格
%-3d表示左對齊,右補空格,所以0(一位數)輸出時,後面會有2個空格
因此,相鄰的兩組之間,會有2+2=4個空格!!

D. c語言中二元組是什麼 他是二元數組嗎

二元組是用來表示一維數組的(數組數據稀疏是可以節省空間)。二元組一般寫成m[x][2]。x表示一維數組的長度,2是指二元即這個用於表示一維數組的二維數組只有兩列。二元組的本質是二元數組,用途是更節省空間的表示一維數組。

例如一個一維數組a[10]其內容為0 0 1 0 4 0 0 0 9 0 這樣10個元素分別放在a[0]~a[9]中。看這個數組中到多是0,那麼我們可以這樣想:我記錄非零位置的位置號和數組值,零的可以不記錄,那麼用二元組來存就是三個元素而已:2,1 4,4 8,9,這個二元組的意思是a[2]中是1 a[4]中是4 a[8]中是9 其他位置都是零。可以看出二元組其實就是固定為兩列的行的一個二維數組。用這個二維數組的第一列表示一維數組a[x]的x,用第二列表示一維數組a[x]的值。

引自:
http://..com/link?url=-mP9cS5WFMOM1BQq3orIiPhxzX4_9Xl8E7K

E. 求一段C語言程序,主要是比較兩個數據組。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct link
{
char a[6];
link *next;
link *pre;
}link;
/*輸入數據組的函數*/
void input(link *x,int num)
{
int i,j;
printf("一組的數據:");
getchar();
gets(x->a);
x->pre=NULL;
link *q=x;
for(j=0;j<num-1;j++)
{
link *p=(link *)malloc(sizeof(link));
gets(p->a);
q->next=p;
p->pre=q;
q=p;
}
q->next=NULL;
}
/*輸出*/
void output(link *x)
{
int i;
link *p=x;
printf("結果為:\n");
for(;p!=NULL;)
{
puts(p->a);
p=p->next;
}
}
/*比較*/
link * compare(link *x1,link *x2)
{
link *bian1=(link *)malloc(sizeof(link));
link *bian2=(link *)malloc(sizeof(link));
link *p=x1;
link *q=x2;
for(;p!=NULL;p=p->next)
{
for(q=x2;q!=NULL;q=q->next)
{
if(strcmp(p->a,q->a)==0)
{
if((p->pre!=NULL)&&(p->next!=NULL))
{
bian1=p->pre;
bian2=p->next;
bian1->next=bian2;
bian2->pre=bian1;
}
else if(p->pre==NULL)
{
x1=x1->next;
x1->pre=NULL;
}
else
{
bian1=p->pre;
bian1->next=NULL;
}
}
}
}
return(x1);
}
void main()
{
link *x1=(link *)malloc(sizeof(link));
link *x2=(link *)malloc(sizeof(link));
int num1,num2;
printf("輸入第一組數據的個數:");
scanf("%d",&num1);
input(x1,num1);
printf("輸入第二組數據的個數:");
scanf("%d",&num2);
input(x2,num2);
x1=compare(x1,x2);
output(x1);
}
這是輸入樣例及答案,你可以參考一下,按照我的輸入格式來編輯你的輸入數據測試:
輸入第一組數據的個數:3
一組的數據:asdfg
qwert
zxcvb
輸入第二組數據的個數:2
一組的數據:asdfg
zxcvb
結果為:
qwert
Press any key to continue

F. 怎麼用C語言來解決比較兩組數據是否完全相同的問題

如果4 6 5 和6 4 5 是相同的話就先排序,再一個一個比較,遇到不同就比較下一組數據直到將所有數據比較完或遇到相同的。也可以是以一組數據為模板,在另一組數據中找不同的,找到就輸出no否則輸出yes

G. C語言 分別輸入兩組各n個數據,分別求和,並取兩個和的大者,該怎樣編程求助

這是我寫的,不知符不符合你的意思。

#include<iostream.h>

voidmain()

{

intn,i,max,sum1=0,sum2=0;

cout<<"請輸入數據的個數:";

cin>>n;

int*num1=newint[n];

int*num2=newint[n];

cout<<"請輸入第一組數: ";

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

{

cin>>num1[i];

sum1+=num1[i];

}

cout<<"請輸入第二組數: ";

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

{

cin>>num2[i];

sum2+=num2[i];

}

if(sum1>sum2)

max=sum1;

else

max=sum2;

cout<<"兩組中和的最大者為:";

cout<<max<<endl;

delete[]num1;

delete[]num2;

}

H. 急!!!C語言程序設計題:設有如下兩組數:{2,8,7,6,4,28,70,25}、{79,27,32,41,57,66,7...

#include<stdio.h>
#include<math.h>
int main(void)
{
int i,a[8],b[8],c[8];
FILE *fp;
printf("請輸入第一個數組a的元素,數與數之間用空格隔開:\n");
for(i=0;i<8;i++)
scanf("%d",&a[i]);
printf("請輸入第二個數組b的元素,數與數之間用空格隔開:\n");
for(i=0;i<8;i++)
scanf("%d",&b[i]);
for(i=0;i<8;i++)
c[i]=a[i]+b[i];
fp=fopen("myfile.text","w");
for(i=0;i<8;i++)
{
fprintf(fp,"%d\t",a[i]);
printf("%d\t",a[i]);
if(i==7)
{
fprintf(fp,"\n");
printf("\n");
}
}
for(i=0;i<8;i++)
{
fprintf(fp,"%d\t",b[i]);
printf("%d\t",b[i]);
if(i==7)
{
fprintf(fp,"\n");
printf("\n");
}
}
for(i=0;i<8;i++)
{
fprintf(fp,"%d\t",c[i]);
printf("%d\t",c[i]);
if(i==7)
{
fprintf(fp,"\n");
printf("\n");
}
}
}

經過實驗過,望採納

I. C語言輸入兩組各十個數據,存入鏈表並排序輸出,最後歸並入第三個鏈表並排序輸出

#include<stdio.h>
#include<malloc.h>
//#define NULL 0
//這里有兩個問題,1.此處沒有 ;號
//2 . 不用定義NULL 為0
//你為啥將一個整型0賦給一個指針呢
//應該將這句注釋掉,因為NULL本來
//就代表空指針,不要畫蛇添足
struct numb
{
int data;
struct numb *next;
};

struct numb *creat()
{
struct numb *head,*s,*p;
int i;
head=s=p=NULL;
p=(struct numb *)malloc(sizeof(struct numb));
printf("please input 10 numbers\n");
for(i=0;i<10;i++)
{
s=(struct numb *)malloc(sizeof(struct numb));
p->next=s;
if(i==0) head=p;
scanf("%d",&p->data);
p=p->next;
if(i==9) p->next=NULL;
} //此處也沒有 ; 號
return head;
}
void print(struct numb *head)
{
struct numb *current;
int i;
printf("The result are:\n");
current=head;
for(i=0;i<10;i++)
{
printf("%3d\t",current->data); //此處注意修改,不是(*current)
current=current->next;
}
printf("\n");
}
void sort(struct numb *head)
{
struct numb *p,*q;
int temp,i,j;

//下面排序的思想是每次讓j 循環中的所有元素
//和當前的第i個元素比較,若果比第i個元素小就
//交換第j個和第i個元素,這樣是按照從小到大的
//順序排,從小到大的方法雷同
p=head;
for(i=0;i<9;i++)
{
//p=q=head;
//q=q->next;
q=p;
for(j=i+1;j<10;j++)
{
q=q->next;

if(p->data > q->data)
{
temp=p->data;
p->data=q->data;
q->data=temp;
}
}
p=p->next;
}
//上面的排序方法比較好理解
//你的代碼中每次進行外層的for循環時,
//p 和q 的值都是從數組的開頭位置進行排序的,
//這就有問題了,應該每進行一次外層for循環,
//p 和q 的值從上一次循環的位置開始,而不是從頭
//重新開始,希望這樣解釋你能理解
}
struct numb *combin(struct numb *head1,struct numb *head2)
{
//我給的歸並函數是在前兩個鏈表已經
//排好序的基礎上,每次選擇兩個鏈表中的
//比較小的值歸入第三次鏈表,這樣依次歸並下去
struct numb *Head,*p,*s,*fir,*sec;
int flag=1,temp;

Head=(struct numb *)malloc(sizeof(struct numb));
p=Head;

fir=head1,sec=head2;
while(flag)
{
if(fir==NULL && sec==NULL) //如果兩個鏈表中的元素都歸並完了,
{ //就退出
flag=0;
}
else if(fir==NULL && sec!=NULL) //如果第一個鏈表歸並完了,第二個
{ //鏈表還有元素,就將第二個的元素
p->data=sec->data; //之間放到第三個鏈表中
sec=sec->next;

}
else if(fir!=NULL && sec==NULL) //如果第二個鏈表歸並完了,第一個
{ //鏈表還有元素,就將第一個的元素
p->data=fir->data; //之間放到第三個鏈表中
fir=fir->next;
}
else
{
if(fir->data < sec->data)
{
p->data=fir->data;
fir=fir->next;
}
else
{
p->data=sec->data;
sec=sec->next;
}
}

s=(struct numb *)malloc(sizeof(struct numb));
p->next=s;
p=s;
}

return Head;
}
void printlen(struct numb *head) //注意排序後數組元素就不止10個了,在
{ //這里我採用偷懶的方法,有復制了一份
struct numb *current;
int i;
printf("The result are:\n");
current=head;
for(i=0;i<20;i++)
{
printf("%3d\t",current->data); //此處注意修改,不是(*current)
current=current->next;
}
printf("\n");
}
int main()
{
struct numb *pHead1,*pHead2; //注意phead聲明的類型,不是int

struct numb *pHead3;

pHead1=creat();
pHead2=creat();
sort(pHead1);
sort(pHead2);
print(pHead1);

print(pHead2);

pHead3=combin(pHead1,pHead2);
printlen(pHead3);

return 0;

}

J. 多組 兩組數組相加,輸出多組數組,用C語言

C語言中實現多組數據輸入輸出主要有兩種方式:
1.首先輸入一個n,表示將有n個輸入輸出,例如:

#include <stdio.h>int main(){ int n,a; scanf("%d",&n); while(n--){ scanf("%d",&a); printf("輸出:%d\n",a); } return 0;}/*運行結果:3255輸出:255156輸出:156125輸出:125 */

2.使用while(scanf("%d",&n)!=EOF){}語句,直達輸入ctrl+z,結束輸入,例如:

#include <stdio.h>int main(){ int a; while(scanf("%d",&a)!=EOF){ printf("輸出:%d\n",a); } return 0;}/*運行結果:54輸出:545156輸出:515621輸出:21^Z */