c语言二维数组排序数组问题

关于C语言整型数组问题_百度知道
关于C语言整型数组问题
设计一个程序,输入一个整形数组,可以完成任意次数组的排序,查找,删除,插入。程序不能出项全局变量,必须需使用函数的调用。
能够给出具体代码么?
提问者采纳
scan的第二个参数是存储输入的&地址&,是不是指针指向的地址或是某个表达式的值是无关的,极端的情况你可以直接赋值常数比如0x01这样scan会把值存入内存的0x01处,a+(i++)这个表达式的值就是这样一个地址,至于这个地址是怎么赋给scan的(用指针?直接赋?),scan根本不考虑.
其他类似问题
没说清楚啊也
c语言的相关知识
其他2条回答
很好实现啊,不过你也没说清楚你的问题出现在哪里?是没有思路还是哪里出现了问题?思路是:定义一个数组,动态分配空间,动态计算数组长度,把长度传给子函数,把子函数需要的数据在主函数中以实参形式传给子函数的形参,调用相应的排序,删除,查找,插入子函数实现你要求的功能。
把数组设置成 静态变量 static
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言中数组问题_百度知道
C语言中数组问题
编写程序,从键盘上输入两个字符串a和b,要求不用strcat()函数把串b的前5个字符连接到串a中,如果b的长度小于5,则把b的所有元素都连接到a中。求代码,注:C语言
提问者采纳
#include &stdio.h&void main(){
char a[100],b[100];
int i,j,n;
printf(&Please input the character of array a:\n&);
printf(&Please input the character of array b:\n&);
n=strlen(b);
for (j=0,i=strlen(a);a[i++]=b[j++];);
for (i=strlen(a),j=0;(a[i++]=b[j++]) && (j&5););
a[i]='\0';
printf(&%s&,a);}你试试这段代码。可以自己在简化下
谢谢,vc++6.0调试过了,只能打出a,b,不能连接
我这里可行的。你加个预处理命令#include&string.h&再试试
谢谢!! a[i]='\0'和a[i++]=b[i++]是什么意思?
'\0'字符串结束标志a[i++]=b[j++]就相当于:a[i]=b[j];i=i+1;j=j+1;
提问者评价
其他类似问题
按默认排序
其他3条回答
#include &stdio.h&#define MAX_ARRAY_SIZE
100int main(void){
char str1[MAX_ARRAY_SIZE];
char str2[MAX_ARRAY_SIZE];
scanf(&%s%s&, str1, str2);
for(i=0; str1[i]!='\0'; i++);
if(i & MAX_ARRAY_SIZE)
while(i&MAX_ARRAY_SIZE && str2[j]!='\0' && j&5)
str1[i] = str2[j];
if(i&=MAX_ARRAY_SIZE)
printf(&Array Overflow!\n&);
str1[i] = '\0';
printf(&%s&, str1);
return 0;}
#include &stdio.h&void fun(char a[],char b[]){int d,i;for(i=0;a[i]!='\0';i++);for(d=0;d&5&&b[d]!='\0';d++) a[d+i]=b[d];}int main() {char a[81],b[81];gets(a);gets(b);fun(a,b);puts(a);}
谢谢 可编译 但原样输出
谢谢 可编译 但原样输出
#include &stdio.h&void fun(char a[],char b[]){ int d,i;for(i=0;a[i]!='\0';i++);for(d=0;d&5&&b[d]!='\0';d++)
a[d+i]=b[d]; a[d+i]='\0'; } int main()
{ char a[81],b[81]; gets(a); gets(b); fun(a,b); puts(a); }忘记加'\0'了。
#include&STDIO.H&#define Max_n 1000int main(){char a[Max_n],b[Max_n];gets(a);gets(b);char *p=a,*q=b;while(*p) p++;while(*q && q!=b+5) *(p++)=*(q++);*p='\0';puts(a);return 0;}
c语言的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁c语言关于数组运算和返回数组的问题_百度知道
c语言关于数组运算和返回数组的问题
定义了并赋值了float a[10],b[10];然后希望通过一个函数function(a,b),把c[10]的每一项等于a,b对应的相加,然后把整个数组返回。好像定义的时候是float *function(float[],float[]);具体要怎样做呢
提问者采纳
#include &stdio.h&#include &stdlib.h&#define N 10float *function(float[], float[]); void main(){
float a[N] = {1.0f, 2.0f, 2.0f, 4.1f, 5.2f, 7.8f, 9.6f, 3.2f, 2.1f, 3.5f}; float b[N] = {1.0f, 2.0f, 2.0f, 4.1f, 5.2f, 7.8f, 9.6f, 3.2f, 2.1f, 3.5f}; float* c = function(a, b); //打印验证 for (i=0; i&N; ++i) {
printf(&%f &,*(c+i)); } //释放内存 free(c); }float *function(float a[], float b[]){ float *c = (float*)malloc(sizeof(float)*N); for (i=0; i&N; ++i) {
c[i] = *a++ + *b++;
}}float *c = (float*)malloc(sizeof(float)*N); 可以改为static float c[N]={0};这样在main函数里面就可以避免用free(c)
其他类似问题
c语言的相关知识
其他1条回答
可以用返回值的方法得到,但推荐使用出参形式。以下为返回方式得到,注意使用完毕后free掉:float *fun(const float *a, const float*b,const int size){float *ret = (float*)malloc(sizeof(float)*10);if(ret == NULL){return NULL;}else{for(i=0; i& i++){*ret = *a + *b;a++;b++;ret++;}}}入参形式得到(略)
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言数组问题_百度知道
C语言数组问题
输入若干个整数存放在一维数组中,根据此数组构造两个数组a和b,要求a中存放数组x中所有的正数,b中存放数组中所有的负数,0舍弃,最后分别输出数组a和b 。
提问者采纳
#include&stdio.h&main(){ int
ab[50],a[50],b[50],n,m,q=0,p=0; printf(&请输入元素个数:&); scanf(&%d&,&n); printf(&请输入各个元素:&); for(m=0;m&n;m++) scanf(&%d&,&ab[m]); for(m=0;m&n;m++) {
if(ab[m]&0)
{ a[q]=ab[m];
if(ab[m]&0)
b[p]=ab[m];
printf(&a[%d]=&,q);
for(m=0;m&q;m++)
printf(&%d &,a[m]);
printf(&\n&);
printf(&b[%d]=&,p);
for(m=0;m&p;m++)
printf(&%d &,b[m]);}
希望能够帮到你
提问者评价
其他类似问题
c语言数组的相关知识
其他2条回答
自己刚弄的小程序,希望能帮到您。#include&stdio.h&void main(){ int i,x,s=0,t=0,a[100],b[100],n[100];
printf(&请输入数组个数(小于100):&); scanf(&%d&,&x); printf(&请输入各元素:&); for(i=0;i&x;i++) scanf(&%d&,&n[i]); for(i=0;i&x;i++) { if(n[i]&0){a[s]=n[i];s++;} if(n[i]&0){b[t]=n[i];t++;}
} printf(&大于0的数为:\n&); for(i=0;i&s;i++) printf(&%d,&,a[i]); printf(&\n小于0的数为: \n&); for(i=0;i&t;i++) printf(&%d,&,b[i]);}如果问题解决,还望采纳。
简单的比较和赋值就应该可以实现啊
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言数组编程问题~求教~~~_百度知道
提问者采纳
不太清楚楼主想要表达的什么意思。不知道我根据你的代码改写代码能不能帮到你。#include&stdio.h&void main(){
char a[5];
printf(&please enter 5 integer number:&);
for(i=0;i&5;i++)
scanf(&%d&,&a[i]);
printf(&Output:\n&);
for(i=0;i&5;i++)
printf(&a[%d] = %d\n&,i,a[i]);}
意思就是没逗号输出是第一种,有逗号是第二种。
输出的数字中间要有逗号 ?
是的。两种输入都要实现~
不知道这个代码能不能帮到你。#include&stdio.h&void main(){&&& char a[5];&&& int i = 0;&&& printf(&please enter 5 integer number:&);&&& for(i=0;i&5;i++)&&&&&&& scanf(&%d&,&a[i]);&&& printf(&Output:\n&);&&& for(i=0;i&5;i++)&&&&&&& printf(&a[%d] = %d\n&,i,a[i]);&& &printf(&\n&);&& &printf(&please enter 5 integer number:&);&& &scanf(&%d,%d,%d,%d,%d&,&a[i],&a[i+1],&a[i+2],&a[i+3],&a[i+4]);&&& printf(&Output:\n&);&&& for(i=0;i&5;i++)&&&&&&& printf(&a[%d] = %d\n&,i,a[i]);}
提问者评价
其他类似问题
#include&stdio.h&int main(void){ int a[5];
printf(&please enter 5 integer number:&); for (i = 0; i & 5; i++)
scanf(&%d&, &a[i]); printf(&Output:\n&); for (int i = 0; i & 5; i++)
printf(&%5d &, a[i]); printf(&\n&); return 0;}祝你愉快。你的问题在于scanf(&%d&,&a[i]);中的&和a[i]之间不能有空格
c语言数组的相关知识
按默认排序
其他1条回答
你定义a[5]为什么要用char类型啊,改成int 试试
是int 输入错误
#include&stdio.h&&int&main(void){&&&&&&int&a[5];int&i;char&c;&&&&&&for(i=0;i&5;i++){&&&&&&&&&&scanf(&%d&,&a[i]);&&&&&&&&&&c=getchar();&&&&&}&&&&&for(i=0;i&5;i++)&&&&&&&&&printf(&%d&,a[i]);&&&&return&0;}
这个代码第二种输入无法实现和输出的一样的~
你是要输入和输出完全一致吗
就是和上面的图一样
哦,你说这个意思啊,那明显是因为逗号导致后面两个没有被赋值,换个编译器就行了,你的是0也是因为没有被赋值,不同编译器效果不同
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 c语言数组 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信