int main(){Biggn2();return 0;}這樣直接調用Biggn2()就能得到正確結果void xuanze(){char a[6];int num;scanf("%d",&num);switch(num){case 1:system("cls");{for(int j=0;j<6;j++)scanf("%c",&a[j]);Biggn1(a);}break;case 2:system("cls");Biggn2();break;case 3:system("cls");Biggn3();break;default :printf(" ");break;}}void jiemian(){printf("請輸入你需要的功能:\n");printf("1.輸入六個字符(以逗號間隔),得到加密后的二進制數。\n");printf("2.輸入一個字符及加密盒(以逗號間隔),得到加密后的二進制數。\n");printf("3.從文件讀取六個字符(以逗號間隔),得到加密后的二進制數。\n");xuanze();}int main(){ jiemian();return 0;}這樣選擇Biggn2(),程序就會失敗。有什么可能的原因呢?void Biggn2(){char a;char b[8];int i=0,k=0;int z;//選擇盒子scanf("%c,%d",&a,&z);int j=0x8;for(;j;j>>=1){if(j&a){b[k++]=1;}else{b[k++]=0;}}//將8位轉換成6位char c[6];c[0]=b[0];c[1]=b[1];c[2]=b[2];c[3]=b[3];c[4]=b[4];c[5]=b[5];//取每組的第一和最后一位數字存放char a1[2];a1[0]=c[0];a1[1]=c[5];//取中間四個數字存放char b1[4];b1[0]=c[1];b1[1]=c[2];b1[2]=c[3];b1[3]=c[4];
如下程序,為什么我單獨調用函數沒問題,但用case語句調用就會出問題?
慕田峪7331174
2022-12-15 17:13:56