#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中的元素赋值,最小的值为等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)