程式填空題,最后運行結果一直不對,貌似是第一第二個空錯了,求問大佬這題怎么做
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long suma=0,sumb=0,s=0;
char a[105],b[105];
int main()
{
scanf("%s",a);
int sa=strlen(a);
for(int i=0;i<sa;i++)
{
if(a[i]>='0' and a[i]<='9')
cout<<a[i];
suma=suma*10+a[i];
}
scanf("%s",b);
int sb=strlen(b);
for(int i=0;i<sb;i++)
{
if(b[i]>='0' and b[i]<='9')
sumb=sumb*10+b[i];
}cout<<suma<<endl;
long long b=suma*sumb;
suma=0;
sumb=b;
while(sumb>=9){
suma++;
sumb=sumb/10;
}
if(suma==10 and sumb==1)
cout<<b;
else
cout<<"Fail";
}

uj5u.com熱心網友回復:
這不是c陳述句。題目是什么,破案需要線索。
uj5u.com熱心網友回復:
題目描述
冷戰期間,A國先后截獲B國的兩句電文
據分析將兩句電文中的數字分別提取出來得到兩個整數
然后再把這兩個整數相乘
如果這個乘積是1開頭的11位數(手機號碼)
則破解成功
輸入
兩行電文
電文中沒有空格,長度不超過100
每行電文中的數字不會超過11位
輸出
如果破解成功,則輸出得到的11位數
否則輸出Fail
樣例輸入
w6a9n7g9t0i4a1n8y5o1u
xin2chang
樣例輸出
13958083702
蟹蟹帶佬
uj5u.com熱心網友回復:
供參考:#include<iostream.h>
#include<stdio.h>
#include<string.h>
using namespace std;
long long suma=0,sumb=0;
char a[105],b[105];
int main(int argc, char* argv[])
{
scanf("%s",a);
int sa=strlen(a);
for(int i=0;i<sa;i++)
{
if(a[i]>='0' && a[i]<='9')//if(a[i]>='0' and a[i]<='9')
//cout<<a[i];
suma = suma*10 + a[i]-'0';
}
scanf("%s",b);
int sb=strlen(b);
for(int i=0;i<sb;i++)
{
if(b[i]>='0' && b[i]<='9')//if(b[i]>='0' and b[i]<='9')
sumb = sumb*10 + b[i]-'0';
}
long long b=suma*sumb;
suma=0;
sumb=b;
while(sumb>=9){
suma++;
sumb=sumb/10;
}
if(suma==10 && sumb==1)//if(suma==10 and sumb==1)
cout<<b;
else
cout<<"Fail";
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/242119.html
標籤:C++ 語言
上一篇:C++
