逆序叔c語言
1. c語言逆序輸出
舉個例給你把
好理解些
例如
a=35
那麼
b首先是等於0的
先做do裡面的循環再判斷while
do裡面
r=35%10=5
%是取余數功能
餘5。
a=35/10=3
因為a是整型。
b=0*10+5=5;判斷while(a)=while(3)=1
所以再循環一次
r=3%10=3
a=3/10=0;b=5*10+3=53;所以逆序輸出了,以此類推
明白了么。祝你好運。
2. c語言逆序輸出
是的,getchar()函數是這樣使用的(括弧中不帶參數)。
看起來這一段代碼是用來復制字元串的。
int a[6];應當改為:
char a[100];
前面的兩段for循環應當改為:
for(i=0;i<=a[0];i++)
a[i+1]=n[i];
其餘的(包括第三個for循環)不變,就可以了。
3. 逆序輸出 C語言
int T(int n)
{
int tot=0;
memset(a,0,sizeof(a));
while(n>=1)
{
a[++tot]=n%2;
n/=2;
}
for(int i=6;i>=1;i--)printf("%d",a[i]);
printf("\n");
}
4. C語言逆序輸出
0到10是11個數了,所以不要等於!
要倒序輸出可以用遞歸演算法!很好用 ,任你字元串多長,只要不爆炸就可以
給你一個,先輸入完字串,再倒序輸出的:
#include<stdio.h>
void fun()
{
char c;
if((c=getchar())!='\n')
fun();
putchar(c);
}
main()
{
fun();
getchar();
}
按確認鍵輸出
5. 逆序問題要求用c語言
#include<stdio.h>
int main()
{char c,s[205];
int i=0,j,j1;
gets(s);
while(s[i])
{
while(s[i]==' ')i++;
for(j=i+1;s[j]>'A'&&s[j]<='Z'||s[j]>='a'&&s[j]<='z';j++);
for(j1=j-1;i<j1;){c=s[i];s[i++]=s[j1];s[j1--]=c;}
i=j+1;
}
puts(s);
return 0;
}
6. c語言逆序問題
你main函數中的for(i=0,i<10;i++)改為for(i=0;i<10;i++)
main函數中多了一個"}"號,要刪除。
就是 printf("%d",a[i]);中最好在%d號中用一個空格把各個數據分開
下面是完整代碼
#include<stdio.h>
void reverse(int x[],int n);
void main()
{
int i,a[10]= {1,2,3,4,5,6,7,78,7,8};
printf("the original array: ");
for(i=0; i<10; i++)
{
printf("%d ",a[i]);
}
printf(" ");
reverse(a,10);
printf("the array: ");
for(i=0; i<10; i++)
{
printf("%d ",a[i]);
}
}
void reverse(int x[],int n)
{
int temp,i,j,m;
m=(n-1)/2;
for(i=0; i<=m; i++)
{
j=n-1-i;
temp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
7. C語言簡單逆序程序
演算法沒有問題,只是
for(i=0;i<n-1;i++);
{
for(int
j=0;j<n-i-1;j++);
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
去掉for循環之後的分號就好了
分號放在for循環之後,循環就只執行一次了~
8. C語言 逆序存放
#include<stdio.h>
#include<string.h>
void main()
{
char s1[10],s2[10];
int i,j;
int b;
scanf("%d",&b); //先輸入數字才能顯示
printf("請輸入一個 %d 位的數組:\n",b);
getchar(); //去掉數字後面敲的回車
gets(s1);
for(i=b-1,j=0;i>=0&&j<=b-1;i--,j++)
{
s2[j]=s1[i];
}
s2[j+1]='\0' ; //字元串末尾加結束符'\0'
printf("逆序後的數組為:%s\n",s2); //字元串輸出的格式
}
//經過調試,可以使用