第五十七题:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
void main()
{
int i;
int j;
int k;
for(i=0;i<1000;i++)//我们要判断的数
{
for(j=0;j<1000;j++) //判断i+100是否是j的平方数
{
if(i+100j*j)
{
for(k=j;k<1000;k++)//判断i+168是否是k的平方
{
if(i+168k*k)
{
printf("%d\n",i);
}
}
}
}
}
}
第五十八题:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
void main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++)
{ // 以下为三重循环,百位
for(j=1;j<5;j++)
{//十位
for (k=1;k<5;k++)
{ // 个位
if (i!=k&&i!=j&&j!=k)
{//确保i、j、k三位互不相同
printf("%d%d%d ",i,j,k);
}
}
}
}
}
第五十九题:输入三个整数x,y,z,请把这三个数由小到大输出。
#include"stdio.h"
void main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if(x>y)
{t=x;x=y;y=t;} /交换x,y的值/
if(x>z)
{t=z;z=x;x=t;}/交换x,z的值/
if(y>z)
{t=y;y=z;z=t;}/交换z,y的值/
printf(“small to big: %d %d %d\n”,x,y,z);
}
第六十题:输出9*9乘法表。
#include"stdio.h"
void main()
{
int i,j;
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
printf("%d*%d=%d ",i,j,i*j);
printf("\n");
}
}
第六十一题:将一个正整数分解质因数。例如:输入90,打印出90=233*5。(1不是质数,所以1也不是质因数)
#include<stdio.h>
void main()
{
int n,i;
printf("\nplease input a number:\n");
scanf("%d",&n);
printf("%d=",n);
for(i=2;i<=n;i++)
while(n!=i)
{
if(n%i==0)
{
printf("%d*",i);
n=n/i;
}
else
break;
}
printf("%d",n);
}
第六十二题:/求一个3*3的整型矩阵对角线元素之和。
#include “stdio.h”
void main()
{
int arr[3][3];
int i,j;
int sum=0;
//初始化
printf(“please input the arr:\n”);
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%d",&arr[i][j]);
//输出初始化后的数组:
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%5d",arr[i][j]);
printf("\n");
}
//运算:
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j)
sum+=arr[i][j];
//输出:
printf("\n the sum is %d\n",sum);
}
第六十三题:编写程序,将两个字符串连接起来,不用strcat函数。
#include"stdio.h"
void main()
{
char str1[50],str2[50],str[50];
int i=0,j=0,k=0;
printf(“输入第一个字符串:\n”);
gets(str1);
printf(“输入第二个字符串\n”);
gets(str2);
printf(“str1=%s\n”,str1);
printf(“str2=%s\n”,str2);
while(str1[i])
str[k++]=str1[i++];
while(str2[j])
str[k++]=str2[j++];
str[k]=str2[j];
printf(“str=%s”,str);
}
第六十四题:从一个三行四列的整型二维数组中查找第一个出现的负数。
#include<stdio.h>
int main()
{
int a[3][4];
int i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
int flag=1;
for(i=0;i<3&&flag;i++)
for(j=0;j<4;j++)
if(a[i][j]<0)
{
printf(“第一个负数是:%d\n”,a[i][j]);
flag=0;
break;
}
if(flag)
printf(“该数组中没有负数!!!\n”);
}
第六十五题:求PI的近似值。
#include"stdio.h"
#include"math.h"
void main()
{
double pi,p=0,i=1,x=1;//x分母,i单项值
int f=1; //表示符号位
while(fabs(i)>=1e-6)
{
p+=i;
x+=2;
f=-f;
i=f/x;
}
pi=p*4;
printf(“pi=%f\n”,pi);
}
第六十六题:有3个字符串,要求找出其中最大者。
#include<stdio.h>
#include<string.h>
int main()
{
char str[3][20];
char string[20];
int i;
for(i=0;i<3;i++)
{
gets(str[i]);//每换行输入一个字符串
}
if(strcmp(str[0],str[1])>0)
strcpy(string,str[0]);
else
strcpy(string,str[1]);
if(strcmp(str[2],string)>0)
strcpy(string,str[2]);
printf(“输入的三个字符串中最大的字符串是%s\n”,string);
}
第六十七题:从键盘输入若干行文本,每行以回车结束,以 ctrl+z 作为输入结束符,统计其行数。
#include “stdio.h”
#include “stdlib.h”
#include “conio.h”
int main()
{
int c,num=0;
while(1)
{
c=getche();
if (c13)
{
printf("\n");
num++;
}
if(c26)
{
printf("\n您输入了 %d 行\n",++num);
exit(1);
}
}
}
第六十八题:从键盘输入字符,以 ctrl+z 结束,统计输入的数字 0~9、空白符和其它字符的个数。
#include “stdio.h”
#include “stdlib.h”
#include “conio.h”
int main()
{
int counter_num=0,counter_space=0,counter_other=-1;
char c;
while(1)
{
c=getche();
if (c>=‘0’&&c<=‘9’)
counter_num++;
else if (c==’ ')
counter_space++;
else
counter_other++;
if(c==26)
{
printf("\n\ncounter_num=%d\tcounter_space=%d\t,counter_other=%d\n",counter_num,counter_space,counter_other);
exit(1);
}
}
}