本文目錄一覽:
- 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了,後面的就不必進行了。
這題考的就是這種提高效率的機制。
以上,未理解的話可以繼續追問。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/308589.html