#include<stdio.h>
void alter(char a[])
{
int i;
for(i=3;i>=0;i--)
{
a[2*i+1]=a[i];
a[2*i]=' ';
}
puts(a);
}
int main()
{
char a[40];
printf("輸入一個四位數:\n");
scanf("%s",&a);
alter(a);
return 0;
}

為什么多輸出了后面的東西?
uj5u.com熱心網友回復:
你沒處理結束符,多一個就行。for(i=4;i>=0;i--)
uj5u.com熱心網友回復:
少了個'\0'uj5u.com熱心網友回復:
沒有結束符就一直往下列印直到遇到結束符,下面是一種修改方式的代碼,供參考。
#include<stdio.h>
void alter(char a[])
{
int i;
for(i=3;i>=0;i--)
{
a[2*i+1]=a[i];
a[2*i]=' ';
}
a[2*4] = '\0'; //在最后增加一個結束符
puts(a);
}
int main()
{
char a[40];
printf("輸入一個四位數:\n");
scanf("%s",&a);
alter(a);
return 0;
}
uj5u.com熱心網友回復:
謝謝大佬 十分感謝
uj5u.com熱心網友回復:
OK 我明白了 謝謝謝謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/252257.html
標籤:C語言
上一篇:C++語言/類/帶引數建構式/字串傳遞給字符指標出錯
下一篇:求助,回圈不能終止。
