1、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
方法一:
分析: 土办法,从1到10000遍历,符合两个条件的即为所求。
#include
#include
int main(){int i,x,y;for(i=1;iint i, j, m, n, x;for (i = 1; i j=168/i; if(j%2==0)//确定j是偶数 {if(i>j&&i*j==168)//确定i*j=168,为防止i和j颠倒,设置i>j. { n=(i-j)/2; m=(i+j)/2;x=n*n-100;x=m*m-268;printf("%d+100=%d*%d\n",x,n,n);printf("%d+268=%d*%d\n",x,m,m);printf("===============\n" );} }}}}
运行结果:
-99+100=1*1
-99+268=13*13
===============
21+100=11*11
21+268=17*17
===============
261+100=19*19
261+268=23*23
===============
1581+100=41*41
1581+268=43*43
===============--------------------------------
Process exited after 0.3052 seconds with return value 0
请按任意键继续. . .
2、有五个学生,每个学生有4门课的成绩,从键盘输入以上数据(包括学生号,姓名,4门课成绩),计算出平均成绩,将原有的数据和计算出的平均分数存放在磁盘文件“student”中。
#include
#include
typedef struct{int ID;int math;int English;int C;int python; int avargrade;char name[20];
}Stu;
int main()
{FILE *fp;Stu stu[5];int i,avargrade=0;printf("请输入5个同学的信息:学生号,姓名,4门成绩:\n");for(i=0;iprintf("error :cannot open file!\n");exit(0);}for(i=0;is=0;k=0;for(j=1; ja[k++]=j;s=s+j;}}if(s==i) {for(int n=0; nfloat a=2,b=1,s=0,t;for(int i=1;iint i;float sum=0;for(i=2;iint i;float sum=0;for(i=1;iint n;float t;float (*p)(int); //p是一个指向函数的指针变量 printf("请输入一个数:");scanf("%d",&n);if(n%2==0)p=even;elsep=odd;t=(*p)(n); //note:写法printf("%.2f",t);return 0;
}
运行结果:
请输入一个数:4
0.75
--------------------------------
Process exited after 3.825 seconds with return value 0
请按任意键继续. . .
6、利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,70-89分之间的用B表示,60-70分之间的用C表示,60以下的用D表示。
方法1:
#include
int main() {int s;printf("请输入你的成绩:") ;scanf("%d",&s);if(s>=90) {printf("A");}if(70printf("C");}if(sint s;char g;printf("请输入学习成绩:");scanf("%d",&s); g=(s>=90)?'A':(s>=70?'B':(s>=60)?'C':'D');printf("%c",g);
}
运行结果:
请输入学习成绩:99
A
--------------------------------
Process exited after 4.177 seconds with return value 0
请按任意键继续. . .
7、求一个4*4矩阵对角线元素之和。
#include
int main(){int a[4][4],i,j,k;int s=0;for(i=0;iscanf("%d",&a[i][j]);}}printf("该矩阵的对角元素分别为:" );for(k=0;kchar a[6][10]= {"个","十", "百","千","万","十万"};int i=0,n; printf("请输入一个不大于6位的整数:");scanf("%d",&n);while(n!=0) {printf("%s位为:%d\n",&a[i],(n%10));//依次从个位输出n=n/10;//得个位以上;i++;//计算有几位}printf("==============");printf("总共%d位",i);
}
运行结果:
请输入一个不大于6位的整数:345623
个位为:3
十位为:2
百位为:6
千位为:5
万位为:4
十万位为:3
==============总共6位
--------------------------------
Process exited after 15.84 seconds with return value 0
请按任意键继续. . .
9、求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如3+33+333+3333+33333(此时 共有5个数相加),几个数相加有键盘控制。
#include
int main() {int s=0,a,b,n;int c[n];printf("请分别输入数字和位数(以空格间隔):");scanf("%d %d",&a,&n);b=a;for(int i=0; iprintf("%d+",c[i]);}printf("%d=%d",c[n-1],s);}
请分别输入数字和位数(以空格间隔):3 4
3+33+333+3333=3702
--------------------------------
Process exited after 7.882 seconds with return value 0
请按任意键继续. . .
10、将一个正整数分解质因数。例如:输入42,打印出42=237。
分析:通过取余运算先找出可以整除此正整数的因子,每找到一个因子就通过取整将此正整数缩小
#include
int main() {int i,n;scanf("%d",&n);printf("%d=",n);for(i=2; i //找到一个因子printf("%d",i);n=n/i;//缩小if(n!=1) {printf("*");}}}
}
756
756=2*2*3*3*3*7
--------------------------------
Process exited after 3.489 seconds with return value 0
请按任意键继续. . .
|