本文目录一览:
- 1、几道C语言题,跪求高手详细帮助
- 2、妹子学C语言伤不起啊,求看这段拉普拉斯代码怎么运行
- 3、C语言问题。定义一个二维数组
- 4、C语言调试出现问题“内存不能为written”,妹纸急需大神求解,谢谢谢谢!
- 5、C语言 求解答
几道C语言题,跪求高手详细帮助
//我写了几个,都经过dev-c调试通过。
//第一题:
#includestdio.h
#includestdlib.h
int fib(int n){
if(n==1||n==2)
return 1;
else
return(fib(n-1)+fib(n-2));
}
int main(){
int a[40],i;
printf("前40个数为:\n");
for(i=0;i40;i++)
{
a[i]=fib(i+1);
printf("%-10d",a[i]);
if((i+1)%5==0)
printf("\n");
}
system("PAUSE");
return 0;
}
//第二题:
includestdio.h
#includestdlib.h
int main(){
int a[10],i,j,temp;
printf("请输入10个数:\n");
for(i=0;i10;i++)
scanf("%d",a[i]);
for(i=0;i10;i++)
for(j=0;j10-i;j++)
if(a[j]a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
printf("排序后:\n");
for(i=0;i10;i++)
printf("%4d",a[i]);
system("PAUSE");
return 0;
}
//第三题:
#includestdio.h
#includestdlib.h
int change(int *a,int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}
int main(){
int a[10],i,j,k=0,m=0;
printf("请输入10个数:\n");
for(i=0;i10;i++)
scanf("%d",a[i]);
for(j=1;j10;j++)
{
if(a[k]a[j]) k=j;
if(a[m]a[j]) m=j;
}
change(a[0],a[k]);
change(a[9],a[m]);
printf("排序后:\n");
for(i=0;i10;i++)
printf("%4d",a[i]);
system("PAUSE");
return 0;
}
//第四题:
#includestdio.h
#includestdlib.h
int main(){
int m=0,i,j;
while(m2||m9){
printf("请输入一个2到9的数:\n");
scanf("%d",m);
}
int a[m][m];
for(i=0;im;i++)
for(j=0;jm;j++)
a[i][j]=(i+1)*(j+1);
printf("output:\n");
for(i=0;im;i++)
for(j=0;jm;j++)
{
printf("%4d",a[i][j]);
if(j==m-1)
printf("\n");}
system("PAUSE");
return 0;
}
//第五题:
#includestdio.h
#includestdlib.h
#includestring.h
int main(){
char a[4][10],b[10];
int i,j ;
printf ("input:\n");
for(i=0;i4;i++)
scanf("%s",a[i]);
for(i=0;i4;i++)
for(j=0;j3-i;j++)
if(strcmp(a[j],a[j+1])0)
{
strcpy(b,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],b);
}
j=0;
printf("排序后:\n");
for(i=0;i4;i++)
{
while(a[i][j])
{
printf("%c",a[i][j]);
j++;
}
printf("\n");
j=0;
}
system("PAUSE");
return 0;
}
//第七题:
#includestdio.h
#includestdlib.h
int main(){
char a[20];
int i=0;
printf("请输入:\n");
gets(a);
while(a[i]){
if(i%2==0)
if(a[i]'a'a[i]'z')
a[i]-=32;
i++;
}
puts(a);
system("PAUSE");
return 0;
}
//余下的下次再发给你吧!
另外,站长团上有产品团购,便宜有保证
妹子学C语言伤不起啊,求看这段拉普拉斯代码怎么运行
你直接用这个式子就可以了,输出的图像已经经过处理了
outimage[i][j]=-(inimage[i-1][j]+inimage[i][j+1]+inimage[i+1][j]+inimage[i][j-1])+5*inimage[i][j];
其实matlab里面有现成的函数可用,数字图像处理用它最方便了
C语言问题。定义一个二维数组
#includestdio.h
int main()
{
int arr[5][6];
int i,j,max,min,sum,a,b,c,d,e;
float ave;
printf("Input 30 numbers:\n");
for(i=0;i5;i++)
for(j=0;j6;j++)
scanf("%d",arr[i][j]);//此处为srr[i][j],你写成srr[5][6]就成了为crr第6行第七列赋值了,不但错误,更是越界了!
printf("\n");
min=max=arr[0][0];//将最大值与最小值都初始化为第一个元素
a=b=c=d=0;//下标也要初始化!
for(i=0;i5;i++)
for(j=0;j6;j++)
{
if(maxarr[i][j])
{
max=arr[i][j];
a=i;
b=j;
}
if(minarr[i][j])
{
min=arr[i][j];
c=i;
d=j;
}
}
printf("max=arr[%d][%d]=%d\n",a,b,max);
printf("min=arr[%d][%d]=%d\n",c,d,min);
sum=0;
for(i=0;i5;i++)
{
for(j=0;j6;j++)
sum+=arr[i][j];
e=i;
ave=sum/6.0;//写成6.0使得sum提升到浮点型
printf("ave=arr[%d]=%f\n",e,ave);
}
return 0;
}
楼主基本没有大错误,只是不够仔细,用来保存特定值的变量使用前一定要初始化,如本例中的最大值,最小值,下标,都是必须初始化的!
整型与整型运算会得到整型,1/2=0,5/4=1;系统会舍去小数部分。只要将其中一个提升至浮点型即可,如1.0/2,5/4.0,如果是两个整型变量,可以写成(float)a/b,即可使得得到浮点型结果!
2013 5 25 7:05
1L
耗时 4min
C语言调试出现问题“内存不能为written”,妹纸急需大神求解,谢谢谢谢!
scanf("%s",s[M].kind);、scanf("%s",s[M].price);……这几个得一致起来吧,为什么前者没有而后者有?估计统一一下就好了……
C语言 求解答
【第一行】:
x=1,y=1,z=1;
if((x=2)(y=2)(z=2))
首先,x=2是赋值,执行后x==2,并且此等式的值为2,所以if (x=2)的结果是true。
其次,按照if的判断规则,遇到abc这样的判断,当a为true后,会进行b的判断,如果b也为true,就继续进行c的判断。所以这一行会依次进行x=2,y=2,z=2的赋值并且总的判断结果是true (truetruetrue),结果打印出222。
【第二行】:
一样的,先进行x=0的赋值和判断。赋值后x的值为零。但是由于x=0这个等式的值为0即false,所以此处(x=0)(y=2)(z=2)总的结果也为false,并且后面的y=2和z=2的赋值并不进行,因为第一项为false了,后两项就不进行判断了(效率上的优化),无论后两项是true还是false,总的结果都是false。所以此时x==0,y==1,z==1,但是不会打印。
【第三行】:
一样的,先进行x=2的赋值和判断,结果为true,此时x==2。
但是注意此时是if(a||b||c)这样形式的判断,如果a是true了,无论后两项结果是什么,总的结果都是true,后两项就 不进行赋值和判断了(效率上的优化)。所以此时x==2,y==1,z==1。
打印出211。
【第四行】:
先进行x=0的赋值和判断,此时x==0,(x=0)的结果是false,所以需要继续进行y=2的赋值和判断。此时y==2,并且(y=2)的值为true。
此时总的结果是false||true||?,为true,第三项不需要进行赋值和判断了(效率上的优化)。
打印出此时xyz的值021
【第五行】:
先进行x=0的赋值和判断,此时x==0,(x=0)的结果是false,所以(x=0)(y=2)的结果就是false了,y=2这一步不进行赋值和判断了(效率上的优化),y的值仍旧为1。
因为(x=0)(y=2)的结果是false,所以需要进行和它相或的z=2的赋值和判断,此时z==2,并且(z=2)的值为true,总的结果是(false?||true),为true。
打印出此时xyz的值012
【总的原则】:
abc...的时候,只要遇到false的,总的结果就是false了,后面的就不必进行了。
a||b||c...的时候,只要遇到true的,总的结果就是true了,后面的就不必进行了。
这题考的就是这种提高效率的机制。
以上,未理解的话可以继续追问。