c语言对二维数组的某一行赋值 如u8 a[20][20]; 仅对a[10]这一行赋值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言对二维数组的某一行赋值 如u8 a[20][20]; 仅对a[10]这一行赋值相关的知识,希望对你有一定的参考价值。
代码片段可以这么写:
……int i;
u8 a[20][20];
for(i=0;i<20;scanf("%d",a[10]+i++));
…… 参考技术A char *disp;//举个例子,随便什么类型
disp=malloc(11*sizeof(char));
*disp="oh,it's u!"
for(int i=0;i<10;i++)
a[10][i]=*disp;
disp++;
参考技术B strcpy(a[10],"hello world"); 参考技术C 用循环搞啊……
如何用c语言给输入的二维数组每一行排序
可以用stdlib.h中的qsort函数如果是int a[10][10]的话
排序第i行
qsort(a[i],10,sizeof(int),comp);
就可以了,comp是一个比较函数
int comp(const void *m1, const void *m2)
return *(int*)m1-*(int*)m2;
这样就可以排序了,如果要反序,就将comp中的m1和m2互换,可以试试,如果不对可以Hi我 参考技术A #include <stdio.h>
void main()
int a[3][4],i,j,t,m,x;
printf("输入一3×4二维整型数组:\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",*(a+i)+j);
for(x=1;x<5;x++)
for(i=0;i<3;i++)
for(t=0;t<3;t++)
if(*(*(a+i)+t+1)<*(*(a+i)+t))
m=*(*(a+i)+t+1);
*(*(a+i)+t+1)=*(*(a+i)+t);
*(*(a+i)+t)=m;
printf("每行按从小到大的排序后为:\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
printf("%6d",*(*(a+i)+j));
printf("\n");
本回答被提问者采纳 参考技术B 这是最基本的排序算法
依次比较两个把大的放在前面
循环
循环
就可以了
以上是关于c语言对二维数组的某一行赋值 如u8 a[20][20]; 仅对a[10]这一行赋值的主要内容,如果未能解决你的问题,请参考以下文章