两道c语言题,谢谢帮帮忙

1.编写程序,要求找出满足下列条件的3位数:它是完全平方数,又有两位数字相同。如:144、676。要求:设计一函数判断一个三位数是否为完全平方数,设计另一函数判断一个三位... 1.编写程序,要求找出满足下列条件的3位数:它是完全平方数,又有两位数字相同。如:144、676。
要求:设计一函数判断一个三位数是否为完全平方数,设计另一函数判断一个三位数中是否有两位数字相同,再在主函数中调用这两个函数,找出所有的满足这两个条件的三位数。
2.1.将矩阵A[4][5]中值(行中所有数的和)为最大的那一行元素与首行元素对换。
具体要求如下:
①矩阵A的数值从键盘输入。
②以矩阵的形式输出对换后的矩阵。
谢谢各位高手了
展开
 我来答
Xh869127
2008-10-29 · TA获得超过276个赞
知道答主
回答量:130
采纳率:0%
帮助的人:0
展开全部
我给你第一题的答案:
#include<stdio.h>
#include<math.h>
void getit(int);
bool haveit=false;
void main()
{
while(true)
{
int a,i;
printf("请输入一个整数\n这个数以下的完全平方数将全部输出>:");
scanf("%d",&a);
getit(a);
printf(haveit==true? "输出完毕!\n":"%d 以下没有完全平方数!",a);//循环结束还没有找到,说明a没有完全平方数,返回
}
}
void getit(int a)
{
for(int i=2;i<a;i++)
{
for(int j = 2; j <= (int)sqrt(a); j++)
{
if(i == j * j)
printf("%d \n",i); //当发现其平方数时,输出并返回
haveit=true;
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dielsalder
2008-10-29 · TA获得超过3854个赞
知道大有可为答主
回答量:1864
采纳率:50%
帮助的人:2717万
展开全部
#include <stdio.h>

int isSquare(int n)
{
static const int arr[] = {100, 121, 144, 169, 196, 225, 256, 289, 324,
361, 400, 441, 484, 529, 576, 625, 676, 729,
784, 841, 900, 961};
int i = 0;
while(n > arr[i] && i < 22)
i++;
return n == arr[i];
}

int hasSameNum(int n)
{
if(100 <= n && n <= 999)
{
int a, b, c;
a = n / 100;
b = (n % 100) / 10;
c = n % 10;
return (a == b && a != c)
|| (a == c && a != b)
|| (b == c && a != b);
}
return 0;
}

int main(void)
{
int i;
for(i = 100; i < 1000; i++)
if(isSquare(i) && hasSameNum(i))
printf("%d\n", i);
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pernoctation
2008-10-29 · TA获得超过3544个赞
知道小有建树答主
回答量:460
采纳率:0%
帮助的人:0
展开全部
这种问题也拿来问,学编程最忌讳的就是什么都不自己思考。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
muqsh
2008-10-29 · TA获得超过129个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:235万
展开全部
1.
#include <iostream>
using namespace std;

bool square(int a)
{
for(int i=0;i*i<=a;i++)
{
if(i*i==a)
return 1;
}
return 0;
}

bool equa(int t)
{
int n=t;
int a[3];
a[0]=n%10;
n=n/10;
a[1]=n%10;
n=n/10;
a[2]=n;
if(a[0]==a[1]||a[1]==a[2]||a[2]==a[0])
return 1;
else return 0;

}

int main()
{
for(int a=100;a<1000;a++)
{
if(square(a)&&equa(a))
cout<<a<<endl;
}
}

2.
#include <iostream>
using namespace std;

int main()
{
int a[4][5];
int sum[4]={0,0,0};
int max[4]={0,0,0};
int i,j,swap;
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
cin>>a[i][j];
sum[i]+=a[i][j];
if(a[i][j]>max[i])
{
max[i]=a[i][j];
swap=j;
}
if(j==4)
{
a[i][swap]=sum[i];
}
}
}
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
cout<<a[i][j]<<" ";
if(j==4)cout<<endl;
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
闻鸡休息
2008-10-29 · TA获得超过351个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:261万
展开全部
是啊, 香肠说的对
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式