请问用C语言写了2个数组为啥会出错,如何在函数体里面写几个数组谢谢

作者&投稿:庄凤 (若有异议请与网页底部的电邮联系)
c语言函数数组问题,2个错误怎么解决?~

void diandao ( int *a,int n)
{
for (i=0; i<n/2 ; i++ ) //这里不应该有加1
{
t=a[i] ;
a[i]=a[n-i-1] ; //这里应该是n-i-1
a[n-i-1]=t ; //这里也应该是n-i-1
}
} //这里丢了一个}

int main()
{
。。
diandao( b,8) ; //这里少了分号
。。
return 0; //既然定义int返回值类型,这里就要有返回值
}

定义一个这样的函数
void findMax(int (*p)[4])
{
用for循环对p[i][j]排序
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(p[i][j]<p[i][j+1])
{
temp=p[i][j];
p[i][j]=p[i][j+1];
p[i][j+1]=temp;

}

}

printf("%d
",p[i][j]);

}

}

基本上...你应该是把两个函式拆开组在一起. 一些新的编译程序可能没问题, 旧一点的就可能不行了.


  1. 变量定义, 建议都放在函式一开头, 不要在执行程序的中间插入.

  2. 看起来像是分开的功能, 如无关联, 就不要放在一起, 拆成函式再呼叫.

  3. 基本建议各种命名, 应该要有意义, 避免a, b, c, d, x, y, z等, 不知所谓的名称.
    其中, i, j, 通常当作index/counter, 依序使用, 是属於for loop专用惯例, 故不在此限.



你把两组循环注释掉,看看还有没有错

第二个 for循环(赋值循环) 应该是b[ja]吧


c语言简单问题2个
gets(ss); 这句话就是输入ABC到数组中,此时ss[10]={ABC\\05\\0\\0\\0\\0\\0},ABC之后的\\0是字符串结束的标志,必须有的,注意和后面的5分开 strcat(ss,"6789"); 这个strcat函数就是将两个字符串连接起来,连接点是从第一个\\0开始的,所以ss[10]={ABC6789\\0\\0\\0\\0}.printf("%s\\n",ss...

大一C语言问题,从键盘输入2个操作数和运算符,用switch语句实现两个...
include<stdio.h>void main() { float x,y,z; char c; scanf("%f%c%f",&x,&c,&y); switch ( c ) { case '+': z=x+y; break; case '-': z=x-y; break; case '*': z=x*y; break; case '\/': z=( y==0 )?(0):(x\/y); break; default: ...

求解一个c语言问题:从键盘输入2个正整数p和q,求p^q的结果,并在屏幕上打...
int q,p;scanf("%d,%d",&q,&p);printf("%d\\n",p^q);

C语言编程! 问1:输入2个整数,计算并输出它们的和、差、积、商。(输入...
int a,b;printf("请输入两个整数:\\n");scanf("%d%d",&a,&b);printf("和:%d\\n差:%d\\n积:%d\\n商:%d\\n",a+b,a-b,a*b,a\/b);return 0;}

C语言问题 1、编写程序,输入2个数以及加、减、乘、除中的某运算符号,并...
已经测试,运行正常,先输入两个数,然后输入+-*\/中的一个:接着就有结果 include <stdio.h> include <stdlib.h> int main(void){ float a, b;char c;float res;scanf("%f %f\\n", &a, &b);c = getchar();switch (c){ case '+':res = a + b;break;case '-':res = a -...

c语言结构体数组赋值问题 如果用同一个结构体定义了2个不同的数组1和...
不可以,要是指针的赋值就可以,例如 typedef struct a{ int y;};int main(){ struct a aa[3]={{2},{4},{6}}; struct a *bb; bb=aa; printf("%d",(bb[0]).y); return 0;}

用C语言写出这几个问题
int main(int argc, char *argv[]){ int n,a,b;for(n=1000;n<=9999;n++){ b=n%100;a=(n-b)\/100;if((a+b)*(a+b)==n)printf("%d\\n",n);} return 0;} include<stdio.h> main(){ char i,j,k; \/*i是a的对手,j是b的对手,k是c的对手*\/ for(i='x';i<='z'...

问2道C语言程序题,谢谢~~我要过程思路,谢谢
case 2:printf("&");} } } 第一次循环:i%5=1,输出 第二次循环:i%5=2,输出&(之间无换行)第三次循环:i%5=3,换行,因为没有break,继续执行,输出& 第四次循环:换行,输出& 第五次循环:输出*,跳出 第二个,i=1,3,5时,分别执行了2次WHILE语句,i=2,4时,分别执行了1次WHILE...

C语言编程问题:(1)编写程序,从键盘输入2个单精度实数,求他们的差?_百 ...
给你写第一个吧,手机不好打。电脑的话两下!main(){ float a,b;scanf("%f%f",&a,&b);printf("%f",a-b);} 最基本的实现,楼主还需要另两个可以追一下,明天上网发给你

C语言函数 【问题描述】输入2个正整数m和n(m>=1,n<=1000),输出m~n之 ...
include <stdio.h>int factorsum(int n){int sum,i;for(i=1,sum=0;i<n;++i){if(n%i==0)sum+=i;}return sum;}int main(void){int m,n;while(scanf("%d , %d",&m,&n)==2){for(;m<n;++m){if(m==factorsum(m)){printf("%d ",m);}}printf("\\n");}return 0;} ...

泊头市15025279345: 在用c编写程序时造成结果错误的原因 -
之选赛博: 可能有以下几个原因1. 算法出错/编程逻辑出错2. 数据未初始化3. 错误的使用了指针4. 数据过大,超出范围5. 递归层数过多,爆栈6. 在主函数内定义了太大数组,此时应把数组定义为全局变量

泊头市15025279345: C语言中的数组编译为啥通不过? -
之选赛博: 从标准语法看,这条有语法错误.int s[10] ; 就可以了.但是不同的编译器可能不同的表现,作为程序员,要禁止这种大括号内没有元素列表的情形.

泊头市15025279345: C语言 用malloc分配2维数组后初始化出错,谁帮我看看错在哪里 -
之选赛博: 首先是,malloc语句计算字节长度错误,第一个应改为malloc(4*sizeof(int*)) 第二个应改为malloc(4*sizeof(int)) 还有,a[4][4]={...}这样的语句只能在定义变量时初始化用,以上赋值需要逐个元素进行.

泊头市15025279345: C语言数组问题!程序哪里出错了?? -
之选赛博: 两个问题:1.输入的时候,printf("please input 10 numbers:\n");不要放在循环体里面,我猜测你的本意是让他只出现一个.2.下面循环对sum进行累计的时候,为什么你的循环变量是i,而你要给sum+=number[ j ]?注意方括号里面你写的是j.

泊头市15025279345: C语言中 为什么我在释放动态二维数组时会出现错误? -
之选赛博: 32位IP地址?但你只分配了32个字节.gets(a[i]); 很可能是这句超出范围了,试试把空间分配多些

泊头市15025279345: c语言中声明数组时明明都写好了却显示 "missing ["是怎么回事? -
之选赛博: 一定要对数组初始化.要不结果会出错的! int a[100]; int i; for还有一楼的你的代码过于死板,没有通用性,在logo语言中通用性是很重要的.

泊头市15025279345: C语言用for循环和scanf输入数组 程序出错,停止工作 -
之选赛博: scanf要使用的是地址...需要在k[j]之前加上“取地址”符号 &for(i=0;i<n;++i) {scanf("%d",&k[i]);}

泊头市15025279345: C语言我的代码用c运行怎么出错?
之选赛博: C语言的变量必须全部先声明完才可以赋值,而你将is_year(year),写在里面就意味着这个数组在被声明前还有函数被调用你可以这样改int a[] = {0,31,0,31,30,31,30,31,31,30,31,30,31};/*其他过程*/a[2] = 28 + is_year(year);

泊头市15025279345: c语言程序二维数组问题,这个简单程序为什么输出乱码?根据二维数组的定义没错啊?难道还要自己编写让它 -
之选赛博: 数组是从0开始的,例如:int a[2][2] = {{1,2},{3,4}}; 想输出1,即a[0][0]; 输出2,即a[0][1];输出3,即a[1][0]; 输出4,即最后一个为:a[1][1]; 其中你输出的a[2][2] 已经数组越界了,也就是说,数组的范围超过了你初始化的时候定义的数组大小,打印出来的数据是乱码,不确定的,或者其他变量的值.

泊头市15025279345: 用c语言写一个数组程序,要求输入相同元素时,系统提示错误 -
之选赛博: 你看我的符合要求嘛#include main(){ int i,j; int a[20],b; for(i=0;i scanf("%d",&a[i]); b=a[i]; for(j=0;j if(a[j]==b){ printf("错误\n"); i--; } } } }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网