這是我覺得最直觀的寫法,但無法列印出東西,是哪邊出了問題嗎?
(我暫時先偷懶只用 case A 等它成功再補齊)
#include <stdio.h>
#include <stdlib.h>
int main()
{
char x;
int m,n,o,p,q,r,s,t,u;
while (scanf(" %c%d%d%d%d%d%d%d%d%d",&x,&m,&n,&o,&p,&q,&r,&s,&t,&u)!=EOF){
int a;
switch(x)
{
case 'A':
a=10;
break ;
}
int b = a%10;
int c = (a-b)/10;
int answer = c + b*9 + m*8 +n*7 +o*6 +p*5 +q*4 +r*3 +s*2 +t*1 +u;
if(answer%10==0)
printf("real \n");
else
printf("fake \n");
}
return 0;
}
輸入問題
後面要當成int輸入的話
必須要用空白隔開
但是他輸入全部都是連在一起的
輸入問題
後面要當成int輸入的話
必須要用空白隔開
但是他輸入全部都是連在一起的
所以是在前面補個空白鍵嗎?這樣還是沒辦法過呢
不是
照你的輸入方法
輸入必須像這樣
T1 1 2 6 6 3 8 3 6
有個方法是
你把每個都當char輸入
然後再轉成int
不是
照你的輸入方法
輸入必須像這樣
T1 1 2 6 6 3 8 3 6
有個方法是
你把每個都當char輸入
然後再轉成int
謝謝~請讓我再問兩個問題:
1.字元和整數的轉換是要利用ASCII碼嗎?
2.直接用INT想為什麼不行?
1.對
'0'的ASCII是48
所以假設
char a = '0'
轉成int就是
int A = a - 48
或
a - '0'
2.因為int輸入要用空白或是換行隔開
照你這樣輸入
scanf(" %c%d%d%d%d%d%d%d%d%d",&x,&m,&n,&o,&p,&q,&r,&s,&t,&u)
然後輸入T112663836
x會抓到'T'
但是後面112663836會存到m裡
所以實際上只輸入了2個變數而已
印不出答案
是因為他還停在輸入