本文目录一览:
求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”效果了。