重要算法复习
(2—sqrt(n)找因子。或者2—n-1)根据题目要求
确定循环范围。#include<>不要忘记!
int i,n;
scanf( " %d” ,&n);
「for(i=2;i<=sqrt(n);i++\^_^_
if(n%i==O) break;
if(i<sqrt(n)) printf( “不是”);
else printf("是");
或者:
int i,n,flag=l;
scanf( " %d" ,&n);
|for(i=2;i<=sqrt(n);i++^
if(n % i==O)(flag=O;break;} if(flag==l) printf(“是”); [else printf(“不是”);「
。例如:1! +3! +5! +7!……n!
|int s,sum=O;
for(i=l;i<=n;i+=2)
{s=l;
for(j=l;j<=i;j++)
批注[Ul]:小于等于哦。注意!
批注[U2]:小于等于哦。注意!
批注[U3]:这是改后的。注意核对!
S*=j;
sum+=s;
I I ,/批注[U4]:这是调整过的正确程序,
J ' 请核对
判断某三位数是否是水仙花数(各位数的立方和==该数本身)
int g,s,b,m;
scanf( " %d" ,&m);
g=m%10;
s=m/10%10;
b=m/100;
if(g*g*g+s*s*s+b*b*b==m)printf("是水仙花数”);
回文数或者回文串(判断到一半即可)前一半跟后一半比较
int a[10];
int i,n; n表示数字个数或者表示字符串长度。若是字符串
n=strlen(a);
for(i=0;i<n/2;i++)
if(a[i]!=a[n-l-i]) break;
if (i<n/2) printf("不是回文数或者回文串");
else printf("是回文数或者回文串");
或者标记变量法:
int a[10];
int i,n,flag=l;
if(a[i]!=a[n-l-i]) {flag=O; break;}
if (flag==l) printf("是回文数或者回文串");
else printf("不是回文数或者回文串”);
逆置:前一半跟后一半交换
int a[10];
for(i=0;i<n/2;i++)
批注[U5]:这是修改后的,务必记
住!
求一个整数各位数之和(拆分)
while> do-while都可以!三位数用g、s、b即可实现!
do-while 语句:
int s=0;
do
s+=m%10;
m=m/10;
while(m!=0);
while语句:
int s=0;
while(m!=0)
(s+=m%10;
m=m/10;
g、 s、 b:
int s, g, s, b;
g=m%10;
s=m/10%10;
b=m/100;
s=g+s+b;
二维数组的输入输出(循环嵌套)
输入:
int a[4][5];
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf( "%d”,&a[i][j]);
输出:
for(i=0;i<4;i++)
for(j=0;j<5;j++)
printf( "%d” ,a[i][j]);
二维字符数组的输入输出一一行一行的输入,用gets函数!
输入:
char a[4][5];
for(i=0;i<4;i++)
gets(a[i]);
输出:
for(i=0;i<4;i++) puts(a[i]);
变量存放下标即可!并且一开始下标也要假设为0"
/批注[U6]:标记下标一定要注意!在 假设最大值的时候就英爱假设下标 为0
求一维数组的最大值最小值以及平均值,标记下标(用一个
假设数组a的值已经输入得到!
最大值:
int a[10],max,i;
max=a[O];
for(i=l;i<10;i++)
if(a[i]>max)
max=a[i];
printf("%d",max);
最小值:
int a[10],min,i;
min=a[O];
for(i=l;i<10;i++)
if(a[i]<min)
min=a[i];
printf("%d",min);
平均值:
int a[10]
二级计算机重要算法复习 来自淘豆网m.daumloan.com转载请标明出处.