以下是我的程式碼:
#include<stdio.h>
#include<string.h>
char c[100000000];
int main(){
long long int l,i,a,sum=0;
// l 是字串長度, i 是給for迴圈使用, a 是字串元素運算後的佔存值, sum 是每個位數的總和
while(scanf("%s",&c)!=EOF){
l=strlen(c);
sum=0;
for(i=0;i<l;i++){
a=c[i]-'0';
sum+=a;
}
if(sum%3==0&&sum!=0){
printf("yes\n");
}else{
printf("no\n");
}
}
}
最後WA(line:2)
求解???
1. while(scanf("%s",&c)!=EOF){
2. if(sum%3==0&&sum!=0){
第一點,字元陣列的記憶體位址,可以直接用該變數名字代表
例如 char c[100000000]; 的 c ,這個 c 就可以當作陣列的記憶體開頭位址
所以要改成 while(scanf("%s", c)!=EOF)
^- 這裡不需要 &
或著改成 while(scanf("%s", &c[0])!=EOF) 代表開頭位址
第二點,範例測資的 0 輸出是 yes ,所以應該改成 if(sum%3==0) 就可以
1. while(scanf("%s",&c)!=EOF){
2. if(sum%3==0&&sum!=0){
第一點,字元陣列的記憶體位址,可以直接用該變數名字代表
例如 char c[100000000]; 的 c ,這個 c 就可以當作陣列的記憶體開頭位址
所以要改成 while(scanf("%s", c)!=EOF)
^- 這裡不需要 &
或著改成 while(scanf("%s", &c[0])!=EOF) 代表開頭位址
第二點,範例測資的 0 輸出是 yes ,所以應該改成 if(sum%3==0) 就可以
感謝!!!!!