C语言数组程序编写(必须用数组)

C语言数组程序编写(必须用数组),第1张

#include <stdioh>

int main(){

char str[20];

char str_a[20];

int inx[20], i;

printf("字符串1: ");

scanf("%s", str);

printf("字符串2: ");

scanf("%s", str_a);

printf("位置  字符\n");

for(i = 0; str[i] && str_a[i]; ++i)

if(str[i] == str_a[i])

printf("%4d  %4c\n", i, str[i]);

return 0;

}

#include<iostream>

using namespace std;

int partition(int a[],int low,int high)

{

int pivotkey=a[low];

int i=low,j=high+1;

while(i<j)

{

do { i++; } while(i<=high && a[i]<pivotkey);// && i<=high);

do { j--; } while(j>=low && a[j]>pivotkey);// && j>=low);

swap(a[i],a[j]);

}

swap(a[i],a[j]);

swap(a[low],a[j]);

return j;

}

void quicksort(int a[],int low,int high)

{

if(low<high)

{

int pivotloc=partition(a,low,high);

quicksort(a,low,pivotloc-1);

quicksort(a,pivotloc+1,high);

}

}

void main()

{

int i,x,a; //申请一个指针变量存放动态数组

//cin>>n;

a=new int[11]; //申请长度为11的动态数组

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

cin>>a[i];

quicksort(a,0,9);

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

cout<<a[i]<<'\t'; //插入前,输出排序后的数组

cout<<"\n\n";

cin>>x;

if(x<=a[0]) //如果插入的元素比数组的第一个元素还要小,则先输出X,再输出原来的数组

{

cout<<x<<" ";

for(int i=0;i<10;i++)

cout<<a[i]<<'\t';

cout<<endl;

}

if(x>=a[9]) //如果插入的元素比数组的最大的元素还要大,则先输出数组,再输出X

{

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

cout<<a[i]<<'\t';

cout<<x<<endl;

}

if((x>a[0])&&(x<a[9])) //如果插入的元素处于数组中的某一个位置,则从后往回找,一边比 较,元素比X大的往后移动一个位置,直到

{ //找到比X小的a[j],就停止比较和移动,把X放在a[j+1]的地方

int j;

for( j=10;j>0;j--)

{

if(x<a[j])

a[j+1]=a[j]; //往后移动

else

a[j+1]=x; //插入

}

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

cout<<a[i]<<'\t'; //输出数组

cout<<endl;

}

}

#include int _tmain(int argc, _TCHAR argv[]){int a[3] = {0};int nTemp = 0;// 输入scanf("%d %d %d",&a[0],&a[1],&a[2]);// 冒泡排序for (int i = 0; i a[j]){nTemp = a[i];a[i] = a[j];a[j] = nTemp;}}}// 输出printf("a[0]=%d, a[1]=%d, a[2]=%d\n",a[0],a[1],a[2]);system("pause");return 0;}

int a[3][3]={0,1,2,3,4,5,6,7,8};

这样写可以将数组所有的元素赋值。不也包括了第二行第二列吗?

int a[3][3]={{0,1},{3,4,5},{6,7}};

只能这样了。

最好的方法是用循环赋值

#include <stdioh>

#include <stringh>

int main(int argc, char argv[])

{

  char a[20],b[20];

 int n,m,j,k;

 printf ("请输入第一个集合内容\n");

 scanf ("%s",a);

 j=strlen(a);

 printf ("请输入第二个集合内容\n");

 scanf ("%s",b);

 k=strlen(b);

 

 printf ("集合的交集是:");  ///////////////////////计算2个数组的交集////////////////////  //flag标志位,index数组下标标志位 int flag=1, index=0; //c[20]保存交集的数组,d[40]保存并集的数组

 char c[20]="",d[40]="";

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

 {

  for (m=0;m<=k;m++)

  {

   if(a[n] == b[m])

   {

    c[index++] = a[n];

    break;

   }

  }

 }

 printf("\n%s\n",c); ////////////////////////////计算2个数组的并集/////////////////////// flag=1;

 index=0;

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

 {

  for(m=0;m<index;m++)

  {

   if(d[m] == a[n])

    flag=0;

  }

  if(flag)

  {

   d[index++]=a[n];

  }

  flag=1;

 }

 flag=1;

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

 {

  for(m=0;m<index;m++)

  {

   if(d[m] == b[n])

    flag=0;

  }

  if(flag)

  {

   d[index++]=b[n];

  }

  flag=1;

 } printf ("集合的并集是:");

 printf("\n%s\n",d);

 return 0;

}

#include <stdioh>

main()

{

int a[4][4];

int sum,mul,max,row,col;

int i,j;

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

for(j=0;j<4;j++)

scanf("%d",&a[i][j]);

sum=0;

mul=1;

max=a[0][0];row=col=0;

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

{

/对角线元素之和/

sum+=a[i][i]+a[i][3-i];

/次对角线从不满足条件,无需计算乘积/

if(i%2==0)mul=a[i][i];

/求最大/

/主对角线/

if(max<a[i][i])

{ max=a[i][i];

row=col=i;

}

/次对角线/

if(max<a[i][3-i])

{ max=a[i][3-i];

row=i;

col=3-i;

}

}

printf("对角线元素的和:%d\n",sum);

printf("对角线元素的积:%d\n",mul);

printf("最大元素:%d,所在位置是%d行,%d列\n",max,row,col);

}

int a(40)={0};

for(int i=0;i!=30;i++) a(i)=2(i+1); //赋值

for(int i=0,j=30;i!=30;j++,i++)

{

for(int k=0;k!=5;k++,i++) a(j)+=a(i); //求和

a(j)/=5; //求平均

}

水平有限,希望你能看懂,还有很多可以改进的地方,你可以看下。运行成功就采纳哦,不过,看不懂的话,就随便你了。

以上就是关于C语言数组程序编写(必须用数组)全部的内容,包括:C语言数组程序编写(必须用数组)、c++用数组编程一下程序、用C语言编写一个程序: 有数组a={1.2 , 4.2 , 0.8},按从大到小的顺序分别为a中的元素赋值,最小的值为等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10117962.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存