本文目錄一覽:
求C語言源代碼:從鍵盤輸入兩個矩陣,輸出這兩個矩陣和這兩個矩陣相乘的矩陣?
寫的有點煩了,不過你看的懂就可以:
#include?iostream
#include?vector
#include?algorithm
#include?stdio.h
#include?string.h
using?namespace?std;
typedef?vectorvectorint??matrix;
typedef?vectorint?row;
void?GetMatrix(matrix?m)
{
????row?tmp;
????int?n;
????size_t?size?=?0;
????
????while(cin.peek()?!=?'#')
????{
????????cin.unsetf(ios::skipws);
????????while(cin??cin.peek()?!=?'\n')
????????{
????????????while(cin.peek()?==?'?')
????????????????cin.get();
????????????
????????????if(cin.peek()?==?'#')
????????????????break;
????????????
????????????cin??n;
????????????
????????????while(cin.peek()?==?'?')
????????????????cin.get();
????????????
????????????tmp.push_back(n);
????????}
????????if(cin.peek()?!=?'#')
????????????cin.get();
????????
????????if(!cin)
????????{
????????????cerr??"ERROR:?Invalid?input?characters.\n";
????????????exit(0);
????????}
????????
????????if(size?!=?0??size?!=?tmp.size())
????????{
????????????cerr??"ERROR:?Jagged?matrix?not?allowed.\n";
????????????exit(0);
????????}
????????
????????size?=?tmp.size();
????????m.push_back(tmp);
????????tmp.clear();
????}
????cin.ignore(512,?'\n');
????
}
void?PrintMatrix(const?matrix?m)
{
????static?char?num[32];
????int?max?=?*max_element(m[0].begin(),?m[0].end());
????int?n;
????
????for(size_t?i?=?1;?i??m.size();?++i)
????????????if(max??(n?=?*max_element(m[i].begin(),?m[i].end())))
????????????????max?=?n;
????????????????
????sprintf(num,?"%d",?max);
????
????cout.setf(ios::left);
????for(size_t?i?=?0;?i??m.size();?++i)
????{
????????for(size_t?j?=?0;?j??m[i].size();?++j)
????????{
????????????cout.width(strlen(num));
????????????cout??m[i][j]??'?';
????????}
????????cout??'\n';
????}
}
void?MatrixMul(const?matrix?m1,?const?matrix?m2,?matrix?product)
{
????if(m1[0].size()?!=?m2.size())
????{
????????cerr??"Candidate?not?allowed.\n";
????????cerr??"If?m1?is?a?m?*?n?matrix?so?m2?must?be?a?n?*?p?matrix.\n";
????????exit(0);
????}
????
????for(size_t?i?=?0;?i??m1.size();?++i)
????{
????????product.push_back(row());
????????for(size_t?j?=?0;?j??m2[0].size();?++j)
????????{
????????????product[i].push_back(0);
????????????for(size_t?k?=?0;?k??m1[0].size();?++k)
????????????????product[i][j]?+=?m1[i][k]?*?m2[k][j];
????????}
????}
}
int?main()
{
????matrix?m1,?m2,?m3;
????
????cout??"Enter?matrix1:\n";
????GetMatrix(m1);
????
????cout??"\nEnter?matrix2:\n";
????GetMatrix(m2);
????
????MatrixMul(m1,?m2,?m3);
????
????cout??"\n\nmatrix?1:?"??m1.size()??"?×?"?m1[0].size()??'\n';
????PrintMatrix(m1);
????
????cout??"\n\nmatrix?2:?"??m2.size()??"?×?"?m2[0].size()??'\n';
????PrintMatrix(m2);
????
????cout??"\n\nm1?*?m2:?"??m3.size()??"?×?"?m3[0].size()??'\n';
????PrintMatrix(m3);
}
c++ 輸入一組數,輸出對應的質數
樓主的算法有冗余的計算,應該輸入完成后再查找,給你小改了一下。
#include iostream
using namespace std;
int main(){
int i, j = 0;
int k = 1,kk=0;
int x[5];
cout"please input:"endl;
for(int b=0;b5;b++){
cinx[b];
}
while(kk!=5)
{
for(i = 3; i 100; i++){
for(j = 2; j i; j++)
{
if(i%j == 0)
{
break;
}
if(i/2 j k!=x[kk])
{
k++;
break;
}
if(i/2 j k==x[kk]){
coutx[kk]'\t'i'\n';
k++;
kk++;
break;
}
}
}
}
system("pause");
return 0;
}
另外樓主的程序不友好, 給樓主個友好版本,
#include iostream
#include vector
int main(int argc,char *argv[])
{
std::vectorint vec,vec1;
std::cout"請輸入您想查詢的序號(不限數目):\n";
while(std::cin.peek()!='\n')
{
int temp;
std::cintemp;
vec.push_back(temp);
}
for(int i=3;i!=100;++i)
{
int j=i/2;
bool flag=true;
for(int k=2;k!=j+1;++k)
{
if(i%k==0)
{
flag=false;
break;
}
}
if(flag)
vec1.push_back(i);
}
for(size_t i=0;i!=vec.size();++i)
std::coutvec[i]"\t"vec1[vec[i]]"\n";
::system("pause");
return 0;
}
黃童白叟是什么生肖動物
你好很高興為您解答
黃童白叟是代表什么生肖
兔
童字代表兔生肖,兔天真爛漫,一世善良。屬兔人性格聰穎,誠實,知書達理,處事圓滑,喜好和平,待人謙遜,寬厚仁慈信義當先。學習能力上佳,文質彬彬之人。處事得體,心思細膩,溫文爾雅,善交際,伶牙俐齒。希望我的回答對您有幫助,祝你生活愉快!
怎么解決顯示器驅動程序已停止響應,并且已恢復
顯示器驅動程序已停止響應的解決辦法:首先,點“開始”,找到“計算機”并點右鍵,找到“屬性”打開,找到“高級系統設置”并打開,打開“高級系統設置”后,找到選項卡“高級”并打開,在“高級”選項卡中找到“性能”的選項“設置”。
進入“設置”,找到“視覺效果”的“玻璃效果”和“啟用桌面組合”取消這兩個顯示效果,選擇完成點“確定”,顯示器會黑屏一會切換顯示效果。
這里注意一點:當你關閉“啟用桌面組合”顯示效果后,那么“啟用AeroPeek”也就自動關閉了,因為“啟用AeroPeek”的前提就是先要啟用“啟用桌面組合”。
當你關閉“啟用桌面組合”后,“啟用AeroPeek”消失了,重新啟用“啟用桌面組合”才能找回“啟用AeroPeek”效果。
可以先關閉“玻璃效果”看一下,如果顯示的問題解決了,就不要關閉“啟用桌面組合”了。畢竟關閉了“啟用桌面組合”就沒法用“AeroPeek”效果了。