程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c語言-pat 部分A+B 求大神幫幫忙,初學C語言

c語言-pat 部分A+B 求大神幫幫忙,初學C語言

編輯:編程解疑
pat 部分A+B 求大神幫幫忙,初學C語言

找不出錯誤。。。
正整數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;
} 
baidu_33690068
qq423399099
baidu_33690068
baidu_33690068
qq423399099
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved