1、对int a[]={25,24,12,76,98,101,50,28}数组进行排序。
int i=0,j=0,temp=0,a[]={25,24,12,76,98,101,50,28};
while(i<sizeof(a)/4){
for(j=0;j<sizeof(a)/4-i-1;){
if(a[j]<a[j+1]||a[j]==a[j+1]){
j++;
}else if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
j++;
}
}
i++;
}
for(i=0;i<sizeof(a)/4;i++){
printf("%d - ",a[i]);
}
结果:
2、从键盘输入若干个整数,其值在0~4的范围内,用-1作结束标志,统计每个整数的个数。
int number,i;
number=i=0;
while(number!=-1){
scanf("%d",&number);
i++;
}
printf("\n本次输入 %d 个数\n\n",i-1);
结果:
3、定义一个含有30个整型元素的的数组,按顺序分别赋予从2开始打的偶数,
然后按顺序每5个数求出一个平均数,放在另一个数组中。
int a[]={2,4,6,8,10,12,14,16,18,20,22,24,26,28,30};
int b[(sizeof(a)/4)/5]={0},i=0,j=0,sum=0;
for(i=0;i<sizeof(a)/4;i++){
sum+=a[i];
if((i+1)%5==0){
b[j]=(sum/5);
printf("%d\n",b[j]);
j++;
sum=0;
}
}
结果:
4、若定义有,int a[][]={1,2,3},{4,5,6};现要将a的行和列的元素互换
后存到另一个二维数组b里,最后输出a、b的各个元素。
int i,j,a[2][3]={{1,2,3},{4,5,6}},b[3][2];
for(i=0;i<2;i++){
for(j=0;j<3;j++){
b[j][i]=a[i][j];
}
}
for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("-%d-",a[i][j]);
}
printf("\n\n");
}
printf("\n\n");
for(i=0;i<3;i++){
for(j=0;j<2;j++){
printf("/%d\\",b[i][j]);
}
printf("\n\n");
}
printf("\n\n");
结果:
5、通过循环按行顺序为一个5x5的二维数组a赋值1到25的自然数,然后输出该数组的左下半三角。
int a[5][5],i,j,temporary;a[5][5]=i=j=0;temporary=1;
for(i=0;i<5;i++){
for(j=0;j<5;j++){
a[i][j]=temporary++;
}
}
temporary=0;
for(i=0;i<5;i++){
for(j=0;j<=temporary;j++){
printf("-%d-",a[i][j]);
}
printf("\n\n");
temporary++;
}
结果:
6、数组a包括10个整数,把a中所有的后项除以前项之商取整后存入数组b中,
并按每行3个元素的格式打印出数组b。(由于第一个数没有前项故从第二个开始)
int a[10]={12,225,717,9419,29137,39465,79955,339656,922225,5341212};
int b[9]={0},i=0,j=0;
for(i=1;i<=9;i++){
b[j]=a[i]/a[i-1];
if(j%3==0){printf("\n");}
printf(" %d",b[j]);
j++;
}
printf("\n\n");
结果:
7、从键盘输入一个字符串a,并在字符串中的最大元素后边插入另外输入的b字符串。
char b[]={"CHAOJISHUAI"},a[10000]={'0'},max=a[0];
int i=0,j=0,k=0;
printf("输入字符串a:");
gets(a);
while(a[i]){
if(max<a[i]){
max=a[i];
j=i;
}
i++;
}
if(a[j]==max){//验证最大元素与下标的匹配是否正确
for(i=j+1;i<=(strlen(b)/1);i++){//从最大元素后一个开始需要后移元素的个数等于数组b的个数
for(k=strlen(a);k>j;k--){//从数组a的最后一个元素开始往前移直到最大元素止每次后移需要挪动的元素总个数
a[k+1]=a[k];//把前面一个赋值给后面一个
}
a[i]=' ';//腾出来的空间暂用空格代替
}
}
puts(a);
if(a[j]==max){
k=0;
for(i=j+1;i<(sizeof(b)/1);i++){//从a数组最大元素后开始插入b数组中从第一个元素开始的数
a[i]=b[k];
k++;
}
}
puts(a);
printf("\n\n");
结果:
/*-------------------反爬声明o(▽)咻咻咻--------------------
作者:**杨木发** 版权声明: 本文为博主倾情原创文章,整篇转载请附上源文链接!
如果觉得本文对你有所收获,你的请评论点赞 与
合理优质的转发也将是鼓励支持我继续创作的动力,
更多精彩可百度搜索 杨木发 或:
个人网站:杨木发的自留地 - 此地无银三百两 ,
GitHub:https://github.com/yangmufa ,
坚持创作 善于总结 开源共享 高质进步。 -------------------反爬声明o(▽)咻咻咻--------------------*/