1、实现数组的行列转换
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
#include <time.h>
int main()
{
int a[5][5];
int i,j;
int temp;
srand(time(NULL));
for(i = 0;i < 5;i++)
{
for(j = 0;j < 5;j++)
{
a[i][j] = rand() % 100;
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("\n");
for(i = 1;i < 5;i++)
{
for(j = 0;j < i;j++)
{
temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
for(i = 0;i < 5;i++)
{
for(j = 0;j < 5;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("\n");
return 0;
}
结果:
2、编程实现最外圈为1,然后是2,3。。。
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
#define N 5
int main()
{
int a[N][N];
int i,j;
int k;
int n = 1;
for(i = 0;i < (N + 1) / 2;i++)
{
for(j = i;j < N - i;j++)
{
for(k = i;k < N - i;k++)
a[j][k] = n;
}
n++;
}
for(i = 0;i < N;i++)
{
for(j = 0;j < N;j++)
{
printf("%4d",a[i][j]);
}
printf("\n");
}
printf("\n");
return 0;
}
结果:
3、一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。《之前做过》
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
void Read(int num[1000])
{
int i=0;
for(i=0;i<1000;i++)
{
num[i]=i;
}
}int Prefectnum(int num[1000],int pnum[1000])
{
int i,j,sum,t;
t=0;
for(i=1;i<1000;i++)
{
sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
sum+=j;
}
if(i==sum)
{
pnum[t++]=i;
}
}
return t;
}
int main()
{
int num[1000],pnum[1000],t,i;
Read(num);
t=Prefectnum(num,pnum);
printf("The prefect numbers:");
for(i=0;i<t;i++)
{
printf("%4d",pnum[i]);
}
printf("\n");
return 0;
}
4、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。(之前做过)
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
int main()
{
int a[21],i;
double sum=0;
a[0]=1;
a[1]=2;
for(i=2;i<=20;i++)
{
a[i]=a[i-1]+a[i-2];
}
for(i=0;i<20;i++)
{
sum+=(float)a[i+1]/a[i];
}
printf("%.9lf\n",sum);
return 0;
}
5、求1+2!+3!+…+10!的和
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
int fun(int n)
{
long m;
if(n == 1)
{
m = 1;
}
else
{
m = n * fun(n - 1);
}
return m;
}
int main()
{
int n;
long sum = 0;
for(n = 1;n <= 10;n++)
{
sum = sum + fun(n);
}
printf("%ld\n",sum);
return 0;
}
结果:
6、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
#include <math.h>
int main()
{
int i,n,m;
int sum;
for(i = 100;i < 1000;i++)
{
m = i;
sum = 0;
while(m)
{
n = m % 10;
m = m / 10;
sum = sum + n * n * n;
}
if(i == sum)
{
printf("%4d",i);
}
}
printf("\n");
return 0;
}
结果:
7、求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
#include <math.h>
int main()
{
int a,n;
int i;
long sum = 0;
printf("请输入所要想加的数a:");
scanf("%d",&a);
printf("请输入要加几个数n:");
scanf("%d",&n);
printf("s = ");
for(i = 0;i < n;i++)
{
sum = sum + a * pow(10,i);
printf("%ld+",sum);
}
printf("\b");
return 0;
}
结果:
8、编程实现输入5个学生的学号、计算他们的期中和期末成绩,然后计算其平均成绩,并输出成绩表。(结构体)
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
int main()
{
struct student
{
long numID;
char name[5];
float scoreqz;
float scoreqm;
float aver;
}stu[5];
int i,j;
printf("请输入五个学生的学号、成绩:");
for(i = 0;i < 5;i++)
{
scanf("%ld%s%f%f",&stu[i].numID,&stu[i].name,&stu[i].scoreqz,& stu[i].scoreqm);
}
for(i = 0;i < 5;i++)
{
stu[i].aver = (stu[i].scoreqz + stu[i].scoreqm) / 2.0;
}
printf(" 学号 姓名 期中 期末 平均成绩\n");
for(i = 0;i < 5;i++)
{
printf("%10ld%6s %.2f %.2f %.2f\t",stu[i].numID,stu[i]. name,stu[i].scoreqz,stu[i].scoreqm,stu[i].aver);
printf("\n");
}
return 0;
}
结果:
9、将字符串“We Are Family!”,去除空格后打印出来。(WeAreFamily!)
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
int main()
{
int i = 0,t = 0;
char str[100];
char ptr[100];
printf("Please input some words:");
gets(str);
while(str[i] != '\0')
{
if(str[i] == ' ')
{
i++;
}
if(str[i] != ' ' && (str[i] >= 'a' && str[i] <= 'z')|| (str[i] >= 'A' && str[i] <= 'Z'))
{
ptr[t++] = str[i];
}
i++;
}
ptr[t] = '\0';
puts(ptr);
return 0;
}
结果:
10、输入一个字符串,判断其是否是回文。(回文:即正读和反读都一样,如abcba, abccba)
/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co., Ltd.
File name:
Author:Jerey_Jobs Version:0.1 Date:
Description:
Funcion List:
*****************************************************/
#include <stdio.h>
int main()
{
char str[100],ptr[100];
int i = 0,j,t = 0;
int flag;
printf("Please input a word:");
gets(str);
while(str[i] != '\0')
{
i++;
}
for(j = i - 1;j >= 0;j--)
{
ptr[t++] = str[j];
}
ptr[t] = '\0';
for(j = 0;j < i;j++)
{
if(str[j] != ptr[j])
{
flag = 1;
}
}
if(flag == 1)
{
printf("不是回文!\n");
}
else
{
printf("是回文!\n");
}
return 0;
}
结果: