C语言如何把三个数组合成一个数组 如a[]={1,2,3}b[]={4,5,6}c[]={7,8,9} 结:d[]={1,2,3,4,5,6,7,8,9,}?
3位数的平方数就那么多,从11^2到31^2穷举判断就好
///
/// 轮询3位平方数
///
static void searchNum()
{
for (int i = 11; i <= 29; i++)
{
for (int j = i + 1; j <= 30; j++)
{
for (int k = j + 1; k <= 31; k++)
{
if (checkNum(i * i, j * j, k * k))
{
Console.WriteLine("符合解:" + (i * i) + "," + (j * j) + "," + (k * k));
}
}
}
}
}
///
/// 判断3个三位数是否为不同数字组成
///
///
///
///
///
static bool checkNum(int num1, int num2, int num3)
{
int[] list = new int[9];
list[0] = num1 / 100;
list[1] = (num1 % 100) / 10;
list[2] = num1 % 10;
list[3] = num2 / 100;
list[4] = (num2 % 100) / 10;
list[5] = num2 % 10;
list[6] = num3 / 100;
list[7] = (num3 % 100) / 10;
list[8] = num3 % 10;
for (int i = 0; i < list.Length - 1; i++)
{
for (int j = i + 1; j < list.Length; j++)
{
if (list[i] == list[j])
{
return false;
}
}
}
return true;
}
main()
{
int a[]={1,7,9,2,5};
int b[]={-1,7,9,2,5,6,8,-2};
int c[20];
int i=0,j=0,k=5;
for(i=0;i<5;i++)*(c+i)=*(a+i);
for(j=0;j<8;j++)
{
for(i=0;i<5;i++)if(*(c+i)==*(b+j)break;
if(i==5)*(c+k++)=*(b+j);
}
for(i=0;i<k;i++)printf("%4d",*(c+k));
printf("\n");
}
以上程序合并ab两个数组,并保留一个重复的元素。
//O(n),完成合并
#include<stdio.h>
int merge(int a[],int b[],int n,int m){//合并两个有序数组
//原理是归并排序的合并阶段
//两个有序数组合并,仍保持有序
int i=0,j=0;
int c[100]={0};//存储合并后的数组
int k=0;
while(i<n&&j<m){
if(a[i]<b[j]){
c[k++]=a[i++];
}
else{
c[k++]=b[j++];
}
}
while(i<n){
c[k++]=a[i++];
}
while(j<m){
c[k++]=b[j++];
}
for(int i=0;i<k;i++){
a[i]=c[i];//合并后的数组存入a数组
}
return k;//返回合并后的数组长度
}
void print(int a[],int n){//打印数组
for(int i=0;i<n;i++){
printf("%d ",a[i]);
}
printf("
");
}
int main(){
int a[20]={1,2,3};
int b[20]={4,5,6};
int c[20]={7,8,9};
int len1=3;//数组a的长度
int len2=3;//数组b的长度
int len3=3;//数组c的长度
int len=0;//合并数组长度
//经过两次合并
len=merge(a,b,len1,len2);//数组a,b合并,存入数组a
printf("a,b合并
");
print(a,len);//打印a,b合并结果
len=merge(a,c,len,len3);//数组a,b,c合并,存入数组a
printf("a,b,c合并
");
print(a,len);//打印a,b,c合并结果
return 0;
}
下面方法可以把三个int 数组合成一个新数组,新数组元素个数是 m。
已知的三个数组大小可以不等。
如果是 float 或 double 型,把程序中变量声明和 sizeof(int) 换成 相应类型即可。
#include <stdio.h>
int main()
{
int a[]={1,2,3},b[]={4,5,6},c[]={7,8,9},*d;
int n[3],m,i;
n[0]=sizeof(a)/sizeof(int);
n[1]=sizeof(b)/sizeof(int);
n[2]=sizeof(c)/sizeof(int);
m=n[0]+n[1]+n[2];
d = (int *) malloc(m * sizeof(int));
for (i=0;i<n[0];i++)d[i]=a[i];
for (i=0;i<n[1];i++)d[i+n[0]]=b[i];
for (i=0;i<n[2];i++)d[i+n[0]+n[1]]=c[i];
for (i=0;i<m;i++) printf("%d ",d[i]);
return 0;
}
设置一个字符串buffer,把三个数组分别循环一遍,放进buffer,用逗号隔开,然后再转化成一个数组!
循环,赋值,
都是一维数组可以用接字符串的方式延伸,不行的话就用循环,一步一步赋值!
你可以上网查查一些函数,有些函数可以拼接数组.我学的是java,最笨的方法就是写循环把每个数组值取出来然后对d数组进行赋值
c语言第三个数组怎么写..
include <stdio.h>#include <stdlib.h>#include <math.h>#include <string.h>void input(double*a,int n){ int i; for(i=0;i<n;i++) { scanf("%lf",a+i); }}double aver(double*a,int n){ int i; double ave=0; for(i=0;i<n;i++) { ...
c语言将一段字符数组的数字三个三个的输出怎么实现?
char s[] = "123456789";for (int i = 0; s[i]; i++){ if (i % 3 == 0 && i != 0)putchar(' ');putchar(s[i]);}
C语言 从txt中读入三行数据到三个数组 求代码及解释
include"stdio.h"void main(){ int j;double x[6],y[6],x0[3];FILE *fp;if((fp=fopen("C:\\\\a.txt","r"))==NULL){ printf("cannot open this file\\n");return;} for(j=0;j<6;j++)fscanf(fp,"%lf",&x[j]);fscanf(fp,"\\n"); \/* 增加换行 *\/ for(j=0;j<6;j...
C语言如何将多个数字存入一个数组中
1、使用多维数组读入数字即可。2、例程:include <stdio.h>int main(void){ int a[3][4], i = 0, j = 0; for(i = 0; i < 3; i++) for (j = 0; j < 4; j++) scanf("%d;", &(a[i][j])); for(i = 0; i < 3; i++) { printf("\\na[%d...
...如何将输入的这一串字符分别定义到三个数组中,
可以直接输入到三个变量中。不过要保证中间没有空格。int a,b;char op;scanf("%d%c%d",&a,&c,&b);
C语言中怎么把一维数组赋给另外一个一维数组
或者遍历二维数组,将每个元素赋值为一维数组对应值上。优点为操作灵活,可以按照需要任意赋值。2、当一维数组和二维数组类型相同,而且赋值顺序与一维数组中的存储顺序完全相同时,可以用memcpy的方式,直接一次性赋值。如一维数组为a,二维数组为b,基础类型为TYPE,需赋值元素个数为n,可以调用 memcpy(b,...
[图]C语言如何将三个字符串存放在一个大数组中
char longst[1000] = {0};strcat(longstr, "china");strcat(longstr, "*");strcat(longstr, "u.s.a");strcat(longstr, "*");strcat(longstr, "Canada");
...两个数组内的相应元素相加,结果存储到第三个数组内
+ num2[i];}}void show_array(int *num, int lenth){int i ;for( i = 0; i < lenth; i++){printf("%-3d",num[i]);}}void main(){int num1[]={1,2,3,4,5};int num2[]={5,6,7,8,9};int num3[5];int lenth = 5; add(num1,num2,num3,lenth);printf("...
C语言中如何把一个数组的值赋给另一个数组 急!!!
第一个问题,用FOR循环吧第一个数组的值 给第二个,第二个问题,可以,完全可以,第一个矩阵刚好是第二个的转制矩阵,当然可以了。
c语言 分别输出三个数组的大写字母,小写字母,数字
因为 c=='\\0'了 不满足条件,不执行了 应该给c初始化
从向七叶: 就以你的例子来写,可适当修改为更普遍的 算法核心代码为:int i = j = k = 0;//循环比较,将小的插入到C数组中 while ( i < 3 && j < 3) { if (a [i] < b [j]) c[k++] = a[i++]; else c[k++] = b[j++]; }//处理其中一个数组剩下 while (i < 3) c[k++] = a[i++]; while( j < 3) c[k++] = b[j++]; 或许有更好的实现,你自己在想想吧!
信阳市13660517009: C语言编程 数组合并 - ?
从向七叶: #include<stdio.h> int main() { int aLength; scanf("%d",&aLength); int a[aLength]; int i,j=0; for(i=0;i<aLength;i++) { scanf("%d",a+i); } int bLength; scanf("%d",&bLength); int b[bLength]; for(i=0;i<bLength;i++) { scanf("%d",b+i); } int allLength...
信阳市13660517009: 任意将三个数组合的c语言程序 - ?
从向七叶: 12345678910111213141516171819202122232425262728293031323334353637383920 void MP_Ellipse(int xc , int yc , int a, int b)21 { 22 double sqa = a * a;23 double sqb = b * b;24 25 double d = sqb + sqa * (-b + 0.25);26 int x = 0;27 int y = b;...
信阳市13660517009: 跪求一个C语言程序,实现功能:任意输入3个数,求出全部的组合.如365,全部组合有27种 - ?
从向七叶: 3个的 要写多个的也可以改#include <stdio.h> #include "string.h"main(){int i,j,k,nLen,count=0;char a3="\0";gets(a);nLen = strlen(a);for (i=0;i<nLen;i++){for (j=0;j<nLen;j++){for (k=0;k<nLen;k++){printf("%c%c%c ",ai,aj,ak);count++;if (count%9==0){printf("\n");}}}}}
信阳市13660517009: c语言 从1—10中取三个数,组合并输出 - ?
从向七叶: #include <stdio.h> #include <malloc.h> typedef struct s_node { int iCount; int aNum[3]; struct s_node *next; }Node; int main(void) { Node *pHead = NULL; Node *pNext = NULL; int i = 0,j = 0,k = 0; int num = 0; pHead = (Node *)malloc(sizeof(Node)); ...
信阳市13660517009: 跪求一个C语言程序,实现功能:任意输入3个数,求出全部的组合如? ?
从向七叶: #include int main() { int a[3],i,j,k; for(i=0;i { scanf("%d",&a[i]); } for(i=0;i { for(j=0;j { for(k=0;k printf("%d%d%d ",a[i],a[j],a[k]); } printf(" "); } gech(); return 0; } 实验了一下,凑合能用.
信阳市13660517009: 用c语言设计一个程序输入三个数,将它们组合成六个三位数 - ?
从向七叶: 要求输入 1 到 9 中 的 3 个数字,组合成 6 个 3 位数 ,程序如下:#include #include int main () { int a[3]; int b[10]; int i,j,k,n=0; printf("input 3 diff digits, 1-9:\n"); for (i=0;i<3;i++) scanf("%d",&a[i]); for (i=0;i<3;i++) for (j=0;j<3;j++) for (k=0...
信阳市13660517009: C语言:6.合并数组. ⑴ 编写函数 int com(int *a,int *b,int *c) - ?
从向七叶: #include "stdio.h"#include "algorithm.h"#define M 10#define N 10 int com(int *a, int *b, int *c) { int i, j; int count = 0; for (i = 0; ic[i] = a[i]; for (j = 0; jc[i++] = b[j]; sort(c, c + (M + N)); for (i = 0; i{ if (c[i] == c[i + 1]) { count++; for (j = i; jc[j] = c[j + 2]; } ...
信阳市13660517009: c语言中,将三个数组合并并将其中相关元素排序,求程序,用for语句实现 - ?
从向七叶: //刚写的code,如果有疑问,欢迎交流#include void bubblesort(int *list,int len) //冒泡排序 { int i,j; int temp; for(i=0;i for(j=0;j { if(list[j+1] { temp=list[j+1]; list[j+1]=list[j]; list[j]=temp; } } } int main(){ int a[100], b[100], c[100]; int m, n, p, i; scanf("%d %d %d",...
信阳市13660517009: 同C语言合并两个数组 - ?
从向七叶: int main(int argc, char* argv[]) {int a[2][3]={1,2,3,4,5,6};int b[2][3]={7,8,9,3,2,1};int i,j;int c[12]; //c是个数组哈int k=0;printf("The array is: ");//你已经有a和b了不用再输入了,这样输入也不对 // for(i=0;i<6;i++) // scanf("%d",&a); // for(i=0;i...