找不出錯誤。。。
正整數A的“DA(為1位整數)部分”定義為由A中所有DA組成的新整數PA。例如:給定A = 3862767,DA = 6,則A的“6部分”PA是66,因為A中有2個6。
現給定A、DA、B、DB,請編寫程序計算PA + PB。
輸入格式:
輸入在一行中依次給出A、DA、B、DB,中間以空格分隔,其中0 < A, B < 1010。
輸出格式:
在一行中輸出PA + PB的值。
輸入樣例1:
3862767 6 13530293 3
輸出樣例1:
399
輸入樣例2:
3862767 1 13530293 8
輸出樣例2:
0
#include
#include
int main(void)
{
int i,b,j,k,temp,count=0,sum=0;
char A[12];char a[12];
char D;
k=0;
b=0;
for(i=1;i<=2;i++)
{
scanf("%s",&A);
scanf("%c",&D);
temp=strlen(A);
printf("%d",temp);
for(j=0;j<temp;j++)
{
if(D==A[j])
{
count++;
}
}
printf("%d\n",count);
if(count!=0)
{
for(j=1;j<=count;j++)
{
sum=sum*10+D-'0';
}
}
}
printf("%d\n",sum);
return 0;
}
有人可以幫幫忙嗎/(ㄒoㄒ)/~~
我把改動的地方都寫在代碼注釋裡面了
#include<stdio.h>
#include<iostream>
using namespace std;
int main(void)
{
int i,b,j,k,temp,count=0,sum=0;
char A[12];char a[12];
char D;
b=0;
for(i=1;i<=2;i++)
{
k=0; //每循環一次就重置為0
scanf("%s",&A);//這裡最好改成scanf("%s",A);(數組不需要取地址)
scanf(" %c",&D);//這裡需要加個空格匹配掉輸入緩沖區中讀掉第一個數以後遺留下來的空格
//不然D將會讀到這個空格,樓主不信可以打印驗證
temp=strlen(A);
//printf("%d",temp);
for(j=0;j<temp;j++)
{
if(D==A[j])
{
count++;
}
}
//printf("%d\n",count);
if(count!=0)
{
for(j=1;j<=count;j++)
{
k=k*10+D-'0';
}
sum = sum + k;//這裡將每次循環得到的值累加到sum上
count = 0;//這裡需要將count重新置為0
}
}
printf("%d\n",sum);
return 0;
}