[問題] scanf()讀入字元時直接跳過
問題(Question):
case 1和 case 2 裡,無法做第一次的輸入,會直接跳到第二次
預期的正確結果(Expected Output):
請設計一多載函式,函式有2個參數:(1)當2個參數都是字元時,則顯示該字元
(2)當參數的字元和整數x時,則顯示該字元x次,
(3)當2個參數都是整數時,則顯 示兩個數相乘的結果
錯誤結果(Wrong Output):
case 1 和 case 2 有問題,case 3則沒問題
程式碼(Code):(請善用置底文網頁, 記得排版)
http://ideone.com/api/embed.js/link/TnpbOU
#include<stdlib.h>
#include<stdio.h>
void aaa(char,char);
void aaa(char,int);
void aaa(int,int);
int main()
{
int num1,num2;
char a1,a2;
int key;
printf("1.兩字元,2.一字元一數字,3.兩數字\n");
scanf("%d",&key);
switch (key)
{
case 1:
printf("輸入第一個字元\n");
scanf("%c",&a1);
printf("輸入第二個字元\n");
scanf("%c",&a2);
aaa(a1,a2);
break;
case 2:
printf("輸入第一個字元\n");
scanf("%c",&a1);
printf("輸入第一個數字\n");
scanf("%d",&num1);
aaa(a1,num1);
break;
case 3:
printf("輸入第一個數字\n");
scanf("%d",&num1);
printf("輸入第二個數字\n");
scanf("%d",&num2);
aaa(num1,num2);
break;
}
system("pause");
return 0;
}
void aaa(char a1,char a2)
{
printf("%c,%c",a1,a2);
}
void aaa(char a1,int num1)
{
int i;
for(i=0;i<num1;i++)
printf("%c ",a1);
}
void aaa(int num1,int num2)
{
int ans;
ans=num1*num2;
printf("%d*%d=%d\n",num1,num2,ans);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.153.51
推
07/15 11:11, , 1F
07/15 11:11, 1F
→
07/15 11:18, , 2F
07/15 11:18, 2F
→
07/15 11:20, , 3F
07/15 11:20, 3F
→
07/15 11:23, , 4F
07/15 11:23, 4F
→
07/15 22:17, , 5F
07/15 22:17, 5F
→
07/15 23:51, , 6F
07/15 23:51, 6F
→
07/15 23:51, , 7F
07/15 23:51, 7F
→
07/16 01:46, , 8F
07/16 01:46, 8F
→
07/16 01:46, , 9F
07/16 01:46, 9F
→
07/16 04:17, , 10F
07/16 04:17, 10F
→
07/16 04:18, , 11F
07/16 04:18, 11F
→
07/17 00:14, , 12F
07/17 00:14, 12F
→
07/18 03:11, , 13F
07/18 03:11, 13F
推
07/24 18:35, , 14F
07/24 18:35, 14F