======================
问题补充:还有个
8用指针方法编写程序,输入三个字符串,按由小到大的顺序输出。要求用函数实现,并用指向一维数组的指针作为函数的参数。
======================
这一个在最后,多加些分吧,累死我了:(
给,都已经编译运行确认了:
1.任意输入一个数,判断它是否为素数
#include "stdio.h"
#include "conio.h"
#include "math.h"
int ss(int inputshu)
{
int i,m,t;
m=inputshu;
for(i=2;i<=sqrt(m);i++)
if(m%i==0) {t=0; break;}
if(i>sqrt(m)+1) t=1;
return(t);
}
int main(void)
{
int j;
printf("请输入一个数: \n");
scanf("%d",&j);
if(ss(j)==0) printf("%d不是素数",j);
else printf("%d是素数",j);
getch();
return 1;
}
2.打印1~1000内所有完数
#include
#include
#define N 1000 /*搜索范围在1000以内*/
int wanshu(int x) /*判断x是否完数*/
{
int i,sum=0;
for(i=1;i<=x;i++) /*对所有x的因子求和*/
{
if(x%i==0) sum=sum+i;
continue;
}
if(sum==x*2) return(1); /*如果求和结果等于2x则x是完数*/
else return(0); /*否则不是完数*/
} /*完数判断函数结束*/
int print_factor(int x) /*打印结果*/
{
int i,j,res[1000]={0}; /*i,j为循环变量.res数组记录每个因子.*/
for(i=1;i
if(x%i==0) res[i]=i;
continue;
}
printf("%d its factors are: ",x); /*打印提示*/
for(j=0;j
if(res[j]!=0)
{
printf("%d",res[j]);
printf("\,");
}
}
printf("\n");
return(0);
} /*打印函数结束*/
int main(int argc, char *argv[]) /*主函数*/
{
int i; /*循环变量*/
for(i=1;i<=N;i++) /*循环找出小于N的所有完数并输出其因子.*/
{
if(wanshu(i)) print_factor(i);
continue;
}
getch();
return 0;
} /*主函数结束*/
3.打印100~999之间的水仙花数
#include "stdio.h"
#include "conio.h"
int main()
{
int i,j,k,n;
printf("水仙花数是:\n");
for(n=100;n<1000;n++)
{
i=n/100;
j=(n-i*100)/10;
k=n%10;
if(i*i*i+j*j*j+k*k*k==n)
printf("%d\n",n);
}
getch();
return 1;
}
4.输入若干字符(以输入!为结束条件)分别统计其中字母、空格、数字和其它字符个数
#include "stdio.h"
#include "conio.h"
int main(void)
{
int word=0,digit=0,space=0,other=0,i=0;
char *p,s[80];
printf("\nInput a string:");
while ((s[i]=getchar())!='\n') i++;
p=s;
while(*p!='!')
{
if(((*p>='A')&&(*p<='Z'))||((*p>='a')&&(*p<='z')))
word++;
else if(*p==' '||*p==9)
space++;
else if((*p>='0')&&(*p<='9'))
digit++;
else
other++;
p++;
}
printf("字母:%d个,空格:%d个,数字:%d个,其它字符:%d个",word,space,digit,other);
getch();
return 1;
}
5.编写九九乘法表
#include
#include
int main(){
int t[10][10]={0};
int i,j;
for(i=1;i<10;i++)
for(j=1;j<10;j++)
t[i][j]=i*j;
for(i=1;i<10;i++){
for(j=1;j<10;j++)
if(i>=j)
printf("%d*%d=%2d ",i,j,t[i][j]);
printf("\n");
}
getch();
return 0;
}
6.求极数e的x次方=1+x+2的阶乘分之x平方+3的阶乘分之x立方+......n的阶乘分之xn次方
#include
#include
int x;
float sum;
long f1(int n)
{
if(n==0) return 1;
else return x*f1(n-1);
}
long f2(int n)
{
if(n==0) return 1;
else return n*f2(n-1);
}
int main()
{
int i,n;
printf("请输入x: ");
scanf("%d",&x);
printf("请输入n: ");
scanf("%d",&n);
for(i=0;i<=n;i++)
sum+=(float)f1(i)/(float)f2(i);
printf("e的%d次方为: %f",x,sum);
getch();
return 1;
}
7.输入4个学生三门课题成绩(二维整型数组)要求:每个学生的平均分、每门课平均分、输出每个学生三门课成绩
#include
#include
int main()
{
int a[4][3]={0};
int i,j;
int total=0;
float ave;
printf("请输入4个学生三门课题成绩: \n");
for(i=0;i<4;i++)
for(j=0;j<3;j++)
{
printf("第%d个学生第%d门课成绩: ",i+1,j+1);
fflush(stdin);
scanf("%d",&a[i][j]);
}
for(i=0;i<4;i++)
{
printf("第%d个学生三门课成绩为: \n",i+1);
for(j=0;j<3;j++)
{
printf("第%d门课: ",j+1);
printf("%d\n",a[i][j]);
}
printf("\n");
}
printf("\n");
for(i=0;i<4;i++)
{
total=0;
printf("第%d个学生平均分为: ",i+1);
for(j=0;j<3;j++) total+=a[i][j];
ave=total/3.0;
printf("%.1f \n",ave);
}
for(i=0;i<3;i++)
{
total=0;
printf("第%d门课平均分为: ",i+1);
for(j=0;j<4;j++) total+=a[j][i];
ave=total/4.0;
printf("%.1f \n",ave);
}
getch();
return 1;
}
8.用指针方法编写程序,输入三个字符串,按由小到大的顺序输出。要求用函数实现,并用指向一维数组的指针作为函数的参数。
#include
#include
#include
void convert(char *p[3])
{
char *t;
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
if(strcmp(p[i],p[j])<0)
{
t=p[i];
p[i]=p[j];
p[j]=t;
}
}
int main()
{
static char *a[3],b[20],c[20],d[20];
int i;
a[0]=b;
a[1]=c;
a[2]=d;
printf("Please input 3 strings: \n");
for(i=0;i <3;i++)
gets(a[i]);
convert(a);
printf("After Sort: \n",a[i]);
for(i=0;i <3;i++)
printf("%s\n",a[i]);
getch();
return 0;
}
这可是学程序最基本的啊,随便一本初级入门的C语言书籍都有吧~
【例1】判断m是否素数。
N-S流程图:
#include
main()
{
int m,i,k;
scanf(“%d”,&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
printf(“%d is a prime number\n”,m);
else
printf(“%d is not a prime number\n”,m);
}
【例2】求100至200间的全部素数。
#include
main()
{
int m,i,k,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
{printf(“%d”,m);
n=n+1;}
if(n%n==0)printf(“\n”);
}
printf(“\n”);
}
1~5都是基本题目你那个做不来还是不要学编程了
又是作业~~·