1.
/*接受一位整数。编写一个程序,将该数的每一个数字相加并显示结果*/
#include<stdio.h>
void main()
{
int a,b,c,sum;
printf("\n请输入一个数: ");
scanf("%d",&a);
c=0;
sum=0;
while (a>0)
{
b=a%10;
a=a/10;
c++;
sum=b+sum;
}
printf("这些数拆开相加的结果");
printf("%d\n",sum);
}
-------------------------------------------------------
2.
/*接受用户输入的数值,该值表示某个字符的ASCⅡ码,使用putchar()函数显示该字符*/
#include<stdio.h>
void main()
{
int a;
char b;
printf("请输入一个字母");
scanf("%d",&a);
b=(char)a;
printf("转换之后结果");
putchar(b);
printf("\n");
}
---------------------------------------------------------
3.
/*编写一个C程序,用于打印九九乘法表*/
#include <stdio.h>
void main()
{
int i,j,sum;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
sum=i*j;
printf("%d*%d=%d\t",j,i,sum);
}
printf("\n");
}
}
---------------------------------------------------------------
4.
/*输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。*/
#include <stdio.h>
void main()
{
int a,b,c,d;
char i;
a=0;
b=0;
c=0;
d=0;
printf ("\n请输入字符序列:");
while((i = getchar()) != '\n')
{
if ((i>='a'&&i<='z')||(i>='A'&&i<='Z'))
a++;
else if (i>='0'&&i<='9')
b++;
else if (i==' ')
c++;
else
d++;
}
printf ("\n输入中英文字母个数:%d",a);
printf ("\n输入数字的个数:%d",b);
printf ("\n输入空格的个数:%d",c);
printf ("\n输入其他的个数:%d\n",d);
}
---------------------------------------------------------------
5.
/*将一个正整数分解因数。例如:输入90,打印出90=2*3*3*5*/
#include <stdio.h>
void main()
{
int a,b;
printf("\n请输入一个数:\n");
scanf("%d",&a);
printf("%d=",a);
for(b=2;b<=a;b++)
{
while(a!=b)
{
if(a%b==0)
{
printf("%d*",b);
a=a/b;
}
else
b=b+1;
}
printf("%d\n",a);
}
}
----------------------------------------------------------
6.
/*编写一个程序,根据输入某班级学员的成绩,计算该班级学员的平均成绩。
班级的人数要求用户输入。根据输入的人数,分别录入学员的成绩。
计算该班级学员的平均成绩,并显示计算结果。最后询问用户是否继续,
直到用户自己确定要结束程序退出.*/
#include<stdio.h>
void main()
{
int a,n,i,sum,score; //a是班级号,n是学员总数,score是成绩,sum是总成绩,i几号的成绩
char e;
do
{
printf("请输入班级号:");
scanf("%d",&a);
printf("请输入该班级的学员号总数:");
scanf("%d",&n);
i=1;sum=0;
while (i<=n)
{
printf("请输入学号%d的成绩: ",i);
scanf("%d",&score);
sum=sum+score;
i++;
}
printf("该班级学员的平均成绩为: %f",(float) sum/n);
printf("是否输入另一个班级的成绩<Y/N>?\n");
fflush(stdin);
e=getchar();
}while(e=='y'||e=='Y');
}
----------------------------------------------------
7.
/*编写一个程序,最多接受10个数,并求出其中所有正数的和。
用户可以通过输入999终止程序,统计用户输入的正
数的个数,并且显示这些数的和*/
#include<stdio.h>
void main()
{
int a,b,c;
b=0;
printf("\n 请输入10个数,或者输入999中止输入.\n");
for(c=0;c<10;c++)
{
scanf("%d",&a);
if(a==999)
{
break;
}
else if(a<=0)
{
continue;
}
else
b=b+a;
}
printf("这 %d 个数的和是: %d\n",c,b);
}
--------------------------------------------------------
8.
/*编写一个程序,用于生成如图所示的输出结果,
要求根据用户输入的一个整数,输出一个数字组成
的图案。
请输入一个数:5
55555
4444
333
22
1
1
22
333
4444
55555
Press any key to continue
*/
#include<stdio.h>
void main()
{
int a,i,j;
printf("请输入一个数: ");
scanf("%d",&a);
for(i=a;i>=1;i--)
{
for(j=1;j<=i;j++)
printf("%d",i);
printf("\n");
}
printf("\n");
for(i=1;i<=a;i++)
{
for(j=1;j<=i;j++)
printf("%d",i);
printf("\n");
}
}
----------------------------------------------------------
9.
/*编写一个程序,打印如下图案:
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
FFFFFFFFFFF
GGGGGGGGGGGGG
*/
#include <stdio.h>
void main()
{
int i,j,k;
char ch='A';
for(i=1;i<=7;i++)
{
for(j=1;j<=7-i;j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("%c",ch);
ch=ch+1;
printf("\n");
}
}
------------------------------------------
10.
/*求一个3*3矩形阵对角线元素之和*/
#include <stdio.h>
void main()
{
float a[3][3],sum=0;
int i,j;
printf("请输入一组数:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%f",&a[i][j]);
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("角线元素之和为:\n%6.2f",sum);
}
11.
/*编写一个录入函数:用来从键盘接受n 个整型数并存放在一个整型数组中,
在主函数中调用该函数计算出这n 个整数之和*/
#include <stdio.h>
void fun(int a[],int n);
void main()
{
int n,i,b[100],sum=0;
printf("输入n:");
scanf("%d",&n);
fun(b,n);
for(i=0;i<n;i++)
sum+=b[i];
printf("sum=%d\n",sum);
}
void fun(int a[],int n)
{
int i;
printf("输入%d个数:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
}
-------------------------------------------------------
12.
/*.目前人民币共有以下几种面值(不包括角和):
1元 2元 5元 10元 20元 50元 100元
编写一个函数计算金额"X"需要多少张面值为n 元的纸币。
在主函数中输入一个金额值,调用该函数。
计算组成该金额最少需要多少张纸币*/
#include <stdio.h>
int denom (int *s,int c)
{
return (*s) / c; //被调用的函数
}
void main()
{
int sum,temp,notes;
notes=0;
printf("\n 请输入金额:");
scanf("%d", &sum);
temp = sum;
notes=denom (&sum,100);
sum = sum % 100; //大于100的除以100比较多出来多少
notes=notes+denom (&sum,50);
sum = sum % 50; //大于50的除以50比较多出来多少
notes=notes+denom (&sum,20);
sum = sum % 20; //大于20的除以20比较多出来多少
notes=notes+denom (&sum,10);
sum = sum % 10; //大于10的除以10多出来多少
notes=notes+denom (&sum,5);
sum = sum % 5; //大于5的除以5多出来多少
notes=notes+denom (&sum,2);
sum = sum % 2; //大于2的除以2多出来多少
notes=notes+sum;
printf("\n 合计 %d 元将需要 %d 张纸币。",temp, notes);
printf("\n ");
}
-----------------------------------------------------------------------------------------------------
13.
/*编写一个程序,用于产生20个0~10之间的随机数,将这20个随机数存入数组,
并通过函数统计这些随机数中某个数出现的次数*/
#include<stdlib.h>
#include<stdio.h>
#include<time.h> //保证输出的随机数字都不一样 不能省略
int count(int num[20],int number);
void main()
{
int arr[20];
int num,total;
int i;
printf("产生20个0~10之间的随机数序列:\n");
srand((unsigned)time(NULL)); //与前面相匹配 不能省略
for(i=0; i<20; i++)
{
arr[i]=rand() % 10;
printf("%d ", arr[i]);
}
printf("\n\n 请输入要搜索的数:");
scanf("%d",&num);
total = count(arr,num);
printf("\n 随机数序列中 %d 出现了 %d 次\n",num,total);
}
int count(int num[20], int number)
{
int i,n=0;
for(i=0;i<20;i++)
{
if(num[i] == number)
n++;
}
return n;
}
-------------------------------------------------------------------------------------------
14.
/*编写一个程序,用于求m的n次幂。m 和n 由用户输入,
调用自定义的求m 的n 次幂的函数,并输出计算结果*/
#include<stdio.h>
int power(int m,int n);
int m,n,a=1;
void main()
{
printf("输入m的n次幂\n");
scanf("%d%d",&m,&n);
a=power(m,n);
printf("%d\n",a);
}
int power(int m,int n)
{
int i;
for( i=0;i<n;i++)
a=a*m;
return a;
}
--------------------------------------------------------------
15.
/*编写一个程序,使用函数统计一串字符中的小写字母的个数,
该函数参数为一个字符数组,返回值为小写字母的个数,
在主函数中从键盘接受一串字符,并调用统计函数求出小写
字母的个数,然后输出。*/
#include<stdio.h>
int count(char s[],int n)
{
int i,count=0;
for(i=0;i<n;i++)
{
if((s[i]>='a')&&(s[i]<='z'))
count++;
}
return count;
}
void main()
{
int n,c;
char s[100],ch;
n=0;
printf("请输入一行字符:");
while ((ch=getchar())!='\n') //以回车作为结束的标志
{
s[n]=ch;
n++;
}
fflush(stdin);
printf("输入字符的个数为:%d个\n",n);
c=count(s,n);
printf("小写字母的个数为:%d个\n",c);
}
------------------------------------------------------------------
16.
/*编写一个程序,从键盘输入X,Y,Z3个数,
编写函数计算3个数的立方和并返回计算结果*/
#include <stdio.h>
#include <math.h>
void main()
{
int x,y,z;
double sum;
scanf("%d%d%d",&x,&y,&z);
sum=pow(x,3)+pow(y,3)+pow(z,3);
printf("%lf",sum);
}
-------------------------------------------------------------------------
//第二种解法
#include <stdio.h>
int abc(int,int,int);
void main()
{
int x,y,z,s;
printf("请输入三个数: ");
scanf("%d%d%d",&x,&y,&z);
s=abc(x,y,z);
printf("立方和为: %d\n",s);
}
int abc (int a,int b,int c)
{
int sum;
sum=a*a*a+b*b*b+c*c*c;
return sum;
}
-----------------------------------------------------------------------
17.
/*编写一个函数,用于接受3到10之间的一个数,
然后输出由星号组成的矩形
例如为4
****
* *
* *
****
*/
#include <stdio.h>
void temp();
void main()
{
sb();
}
void temp()
{
int i,j,k,num;
printf("请输入3-10之间的数:");
scanf("%d",&num);
for(i=0;i<num;i++)
printf("*");
printf("\n");
for(j=0;j<num-2;j++)
{
printf("*");
for(k=0;k<num-2;k++)
printf(" ");
printf("*");
printf("\n");
}
for(i=0;i<num;i++)
printf("*");
printf("\n");
}
-------------------------------------------------------------
18.
/*编写三个函数分别完成一个十进制整数到二进制的转换,
十进制整数到八进制的转换,
十进制整数到十六进制的转换。在main 函数中,
根据用户的选择调用相应的函数完成进制转换。
用户可以重复选择功能,直到输入0退出*/
#include <stdio.h>
void a();
void b();
void c();
void main()
{
int n;
do
{
printf("\n0.退出 1.十进制~二进制 2.十进制~八进制 3.十进制~十六进制\n");
printf("请选择功能:");
scanf("%d",&n);
if(n==0)
break;
switch(n)
{
case 1:a();
break;
case 2:b();
break;
case 3:c();
break;
default:printf("输入有误,请在1-4之间选择\n");
}
}while(1);
}
void a()
{
int num, p[100],i=0,count;
printf("请输入一个十进制数:");
scanf("%d",&num);
for(count=0;;count++)
{
if(num==0)
break;
p[count]=num%2;
num=num/2;
i++;
}
printf("转换为二进制:");
for(count=i-1;count>=0;count--)
printf("%d",p[count]);
printf("\n");
}
void b()
{
int num, p[100],i=0,count;
printf("请输入一个十进制数:");
scanf("%d",&num);
for(count=0;;count++)
{
if(num==0)
break;
p[count]=num%8;
num=num/8;
i++;
}
printf("转换为八进制:");
for(count=i-1;count>=0;count--)
printf("%d",p[count]);
printf("\n");
}
void c()
{
int num, p[100],i=0,count;
printf("请输入一个十进制数:");
scanf("%d",&num);
for(count=0;;count++)
{
if(num==0)
break;
p[count]=num%16;
num=num/16;
i++;
switch(p[count])
{
case 10:p[count]='A';
break;
case 11:p[count]='B';
break;
case 12:p[count]='C';
break;
case 13:p[count]='D';
break;
case 14:p[count]='E';
break;
case 15:p[count]='F';
break;
}
}
printf("转换为十六进制:");
for(count=i-1;count>=0;count--)
{
if(p[count]<10)
printf("%d",p[count]);
if(p[count]>=10)
printf("%c",p[count]);
}
printf("\n");
}
--------------------------------------------------------------
19.
/*求1!+2!+3!+....+10!*/
#include <stdio.h>
void main()
{
int n,f,sum;
f=1;sum=0;
for(n=1;n<=10;n++)
{
f=f*n;
sum=sum+f;
}
printf("和为=%d\n",sum);
}
---------------------------------------------
20.
/*打印如下表格*/
/*乘法表:
X: 1 2 3 4 5 6 7 8 9 10
-+----------------------------------------
1: 1 2 3 4 5 6 7 8 9 10
2: 2 4 6 8 10 12 14 16 18 20
3: 3 6 9 12 15 18 21 24 27 30
4: 4 8 12 16 20 24 28 32 36 40
5: 5 10 15 20 25 30 35 40 45 50
6: 6 12 18 24 30 36 42 48 54 60
7: 7 14 21 28 35 42 49 56 63 70
8: 8 16 24 32 40 48 56 64 72 80
9: 9 18 27 36 45 54 63 72 81 90
10: 10 20 30 40 50 60 70 80 90 100
*/
#include <stdio.h>
void main()
{
int i,k;
printf("乘法表: \n");
printf("X: 1 2 3 4 5 6 7 8 9 10\n");
printf("-+----------------------------------------\n");
for(i=1;i<=10;i++)
{
printf("%d:",i);
for(k=1;k<=10;k++)
printf("%4d",k*i);
printf("\n");
}
}
----------------------------------------------------------
21.
/*输入五个字 ,进行左右数字掉换*/
#include <stdio.h>
void main()
{
int a[5],i,j,temp;
j=0;
printf("请输入五个数");
for (i=0;i<5;i++)
{
j++;
scanf("%d",&a[i]);
}
printf("原始数组:\n");
for(i=0;i<j;i++)
{
printf("%d",a[i]);
}
printf("\n");
printf("左右掉换后的结果:\n");
for(i=0;i<2;i++) //掉换数字
{
temp=a[i];
a[i]=a[5-i-1];
a[5-i-1]=temp;
}
for(i=0;i<5;i++)
{
printf("%d",a[i]);
}
printf("\n");
}
打印九九乘法表
#include<stdio.h>
main()
{
int i=1,j=1;
while(i<=9)
{
j=1;
while (j<=i)
{
printf("%d*%d=%-4d",i,j,i*j);
j++;
}
printf("\n");
i++;
}
}
-------------------------------------------------------------------------------------------
输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数
#include <stdio.h>
void main()
{
int a,b,c,d;
char i;
a=b=c=d=0;
printf ("\n请输入字符序列:");
while((i = getchar()) != '\n')
{
if ((i>=65&&i<=90)||(i>=97&&i<=122))
a++;
else if (i>=48&&i<=57)
b++;
else if (i==32)
c++;
else
d++;
}
printf ("\n输入中英文字母个数:%d",a);
printf ("\n输入数字的个数:%d",b);
printf ("\n输入空格的个数:%d",c);
printf ("\n输入其他的个数:%d\n",d);
}
产生斐波那契数列的10个数(1 1 2 3 5 8 13 ......)
#include <stdio.h>
void main()
{
int a,b,s,c; //a和b为出始值, s为输出的个数
a=1;b=1;
for(s=1;s<=10;s++) // 一共输出十个数
{
c=a+b;
printf("%d ",a);
a=b;
b=c;
}
printf("\n");
}
-------------------------------------------------------------------------------------------
求1到10阶乘的和
#include <stdio.h>
void main()
{
int n,f,sum;
f=1;sum=0;
for(n=1;n<=10;n++)
{
f=f*n;
sum=sum+f;
}
printf("和为=%d\n",sum);
}
以表格的格式显示1到10的乘法表
#include <stdio.h>
void main()
{
int i,k;
printf("乘法表: \n");
printf("X: 1 2 3 4 5 6 7 8 9 10\n");
printf("-+----------------------------------------\n");
for(i=1;i<=10;i++)
{
printf("%d:",i);
for(k=1;k<=10;k++)
printf("%4d",k*i);
printf("\n");
}
}
-------------------------------------------------------------------------------------------
根据输入某个班级学员的成绩,计算该班学员的平均成绩,班
级学员要求用户输入。最后询问是否要继续。
#include <stdio.h>
void main()
{
int a,n,score,i,sum;
char flog;
while (flog=='y');
{
printf("请输入班级号:");
scanf("%d",&a);
printf("请输入该班级的学员号总数:");
scanf("%d",&n);
i=1;sum=0;
while (i<=n)
{
printf("请输入学号%d的成绩: ",i);
scanf("%d",&score);
sum=sum+score;
i++;
}
printf("该班级学员的平均成绩为: %f",(float) sum/n);
printf("\n是否输入另一个班的成绩(y/n) ");
fflush(stdin);
scanf("%c",&flog);
}
}
-------------------------------------------------------------------------------------------
C语言第十章家庭作业
Hw10_1题目:
编写分别实现如下功能的各个函数;编写一个程序调用这些功能。
定义一个大小为8的数组,实现以下功能:
a) 动态实现数组元素的录入
b) 实现数组元素的输出
c) 比较数组元素的最大值
d) 比较数组元素的最小值
e) 求数组元素的平均值
f) 将数据元素实现排序
g) 用户输入一元素,查找在数组中出现的次数
h) 在数组中插入一元素,并保持数组仍然有序
-------------------------------------------------------------------------------------------
Phw152_1题目:
编写一个程序,从键盘输入X、Y、Z3个数,编写函数计算3个数的立方
和并返回计算结果:S=X3+Y3+Z3
#include <stdio.h>
int pengwei_lifang(); //定义函数
void main()
{
int x,y,z; //定义x,y,z变量 分别为3个数
int jieguo; //定义jieguo变量为结果
x=pengwei_lifang(); //套用函数公式求立方
y=pengwei_lifang();
z=pengwei_lifang();
jieguo=x+y+z; //求和公式
printf("这三个数立方的和为:%d\n",jieguo);//打印结果
}
int pengwei_lifang()//此函数用于求公式
{
int a;//定义一个变量
printf("请输入要求立方的数为:");//提示信息
scanf("%d",&a);//取值
a=a*a*a;//立方公式
return a;//返回值
}
-------------------------------------------------------------------------------------------
Phw152_2题目:
编写一个程序,使用函数统计一串字符中小写字母的个数,该函数参数为一个字符数组,
返回值为小写字母的个数。在主函数中从键盘接收一串字符,并调用统计函数
求出小写字母的个数,然后输出。
#include <stdio.h>
#define N 10
int pengwei_qiushu(char c[N]);//自定义函数
void main()
{
int i,j; //定义变量
char a[N];//定义字符变量
printf("请输入字符串:"); //提示信息
for(i=0;i<N;i++)//循环输入
{
scanf(" %c",&a[i]);
}
j=pengwei_qiushu(a); //调用函数
printf("小写字母的个数为:%d\n",j);//打印输出结果
}
int pengwei_qiushu(char c[N]) //自定义函数
{
int i,j=0;
for(i=0;i<N;i++) //循环比较
{
if(c[i]>'a' &&c [i]<'z') //比较公式
j++;
}
return j; //返回值 j
}
-------------------------------------------------------------------------------------------
Phw240_1题目:
目前人民币共有以下几种面值(不包括角和分):
1元、2元、5元、10元、20元、50元、100元
编写一个函数计算金额“X”需要多少张面值为n元的纸币。在主
函数中输入一个金额值,调用该函数,计算组成该金额最少需要多少纸币。
#include <stdio.h>
void pengwei_qianqian(int a);//自定义函数
void main()
{
int a;//定义变量作为金额
printf("请输入金额: ");//信息提示
scanf("%d",&a);//输入(金额)
pengwei_qianqian(a);//套用函数
}
void pengwei_qianqian(int a)//定义函数
{
int b=0;//定义临时变量
if(a>=100)
{
b=a%100;//求余数
a=a/100;//求需要100元的张数
printf("你需要 %d 张100元\n",a);//打印结果
a=b; //然后b赋值给a 继续比较
}
if(a>=50)
{
b=a%50;//求余数
a=a/50;//求需要50元的张数
printf("你需要 %d 张50元\n",a);
a=b;//然后b赋值给a 继续比较
}
if(a<50 && a>=20)
{
b=a%20;//求余数
a=a/20;//求需要20元的张数
printf("你需要 %d 张20元\n",a);
a=b;//然后b赋值给a 继续比较
}
if(a<=19 && a>=10)
{
b=a%10;//求余数
a=a/10;//求需要10元的张数
printf("你需要 %d 张10元\n",a);
a=b;//然后b赋值给a 继续比较
}
if(a<=9 && a>=5)
{
b=a%5;//求余数
a=a/5;//求需要5元的张数
printf("你需要 %d 张5元\n",a);
a=b;//然后b赋值给a 继续比较
}
if(a<=4 && a>=2)
{
b=a%2;//求余数
a=a/2;//求需要2元的张数
printf("你需要 %d 张2元\n",a);
a=b;//然后b赋值给a 继续比较
}
if(a>=1)
{
b=a%1;//求余数
a=a/1;//求需要1元的张数
printf("你需要 %d 张1元\n",a);
}
}
-------------------------------------------------------------------------------------------
Phw241_2题目:
编写一个录入函数:用来从键盘接收n个整型数并存放在一个整型数组中。
在主函数中调用该函数计算出这n个整数之和。
提示:录入函数需要两个参数:一个参数是需要用来存储数字的数组
,另一个参数是录入数的总数。
#include <stdio.h>
void pengwei_sun(int a[],int n);//定义一个输入数组的元素
void main()
{
int n,i,b[100],sum=0;
printf("输入你想相加多少数:");//提示信息
scanf("%d",&n);//输入
pengwei_sun(b,n);//套用函数
for(i=0;i<n;i++)
{
sum+=b[i];//求和公式
}
/*控制数组滴大小,并求和*/
printf("和为:%d\n",sum);//输出结果
}
void pengwei_sun(int a[],int n)//此函数用来输入数组的数
{
int i;//定义变量i作为临时储存输入滴元素
printf("输入%d个数:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);//循环输入元素
}
}
-------------------------------------------------------------------------------------------
C语言第七章家庭作业
Hw7_1题目:
有一个3×4的矩阵,求所有元素中的最大值。
#include <stdio.h>
void main()
{
int i,j,a[3][4]; //定义变量
int max;
printf("请输入该数组元素:\n"); //提示信息
for(i=0;i<3;i++) //for循环,条件判断
{
for(j=0;j<4;j++) //for循环,条件判断
{
scanf("%d\t",&a[i][j]); //按照提示信息按照要求输入
}
}
for(i=0;i<3;i++) //for循环,条件判断
{
for(j=0;j<4;j++) //for循环,条件判断
{
if(max<a[i][j]) //比较大小过程
max=a[i][j];
}
}
printf("\n最大值为:%3d\n",max); //最后输入并打印
}
-------------------------------------------------------------------------------------------
Hw7_2题目:
从键盘上输入一串字符,放入到数组中,把它按照正序及逆序分别输出
#include <stdio.h>
void main()
{
char i,j,a[3][3]; //定义变量,
for(i=0;i<3;i++) //for循环(条件循环比较)
{
printf("请输入%d组数各元素:\n",i+1);//输出的提示
for(j=0;j<3;j++) //for循环(条件循环比较)
{
scanf(" %c",&a[i][j]);//按以上提示输入
fflush(stdin); //清空键盘缓存
}
}
printf("刚才输入的数组正序为:\n"); //输出的提示
for(i=0;i<3;i++) //for循环(因此排列输入数)
for(j=0;j<3;j++)
{
printf("%-5c",a[i][j]);//输出(打印输入后结果)
}
printf("\n刚才输入的数组反序为:\n");
for(i=2;i>=0;i--) //for循环(条件循环比较依次从后排列)
for(j=2;j>=0;j--)
{
printf("%-5c",a[i][j]);//输出(打印改变后结果)
}
}
-------------------------------------------------------------------------------------------
Hw7_3题目:
用户输入一组数据,直到输入回车结束,且把数据放入数组中。要求:
先对数组进行冒泡排序,输出结果;再提示用户”是否插入数据”,
若要插入数据,则把插入的数据插入到数组中,且仍按顺序输出;
最后求出最大值,和最小值,输出
#include <stdio.h> //预处理语句
#define N 5 //定义一个符号常量
void main() //主函数
{
int i,j,a[N+1]; //声明一个一维数组
int d,s,max,min; //程序所需变量声明
char ss='y'; //用于是否结束程序的变量
printf("请为数组输入数据\n");
for (i=0;i<N;i++) //给数组输入数据
{
scanf("%d",&a[i]);
}
for (i=0;i<N;i++) //控制外部循环次数
{
for (j=0;j<N-i-1;j++) //控制内部循环次数
{
if (a[j]>a[j+1])
{ //交换元素
d=a[j+1];
a[j+1]=a[j];
a[j]=d;
}
}
}
printf("升序输出数组的值:");
//把数组按升序显示输出
for (i=0;i<N;i++)
{
printf("%-5d",a[i]);
}
printf("\n");
printf("\n你是否想插入一个数据?(y/n)"); //输入提示
fflush(stdin); //清空键盘缓存
ss=getchar(); //从键盘上接收一个字符
if (ss=='y'|| ss=='Y') //判断是否继续执行程序
{
printf("\n请输入一个想要插入的数:"); //输入提示
scanf("%d",&s); //输入语句
for (i=0;i<N;i++) //查找第一个大于要插入数的位置
{
if(a[i]>s)
{
break;
}
}
for (j=N;j>i;j--) //为插入的数留出位置
{
a[j]=a[j-1];
}
a[i]=s; //把插入的数放到数组中
printf("\n插入后的数组元素:\n");
for (i=0;i<N+1;i++)
{
printf("%d\t\n",a[i]); //显示插入后的数组元素
}
max=a[0]; //最大值初始化
min=a[0]; //最小值初始化
for (i=1;i<N+1;i++) //B控制循环次数
{
//判断最大值
if (max<a[i])
{
max=a[i];
}
//判断最小值
if (min>a[i])
{
min=a[i];
}
}
printf("最大值为:%d\n",max); //输出最大值
printf("最小值为:%d\n",min); //输出最小值
}
else
{
printf("程序结束!\n");
}
}
-------------------------------------------------------------------------------------------
C语言第三章家庭作业
Hw3_1题目
从键盘输入一个字符,判断它是否为数字
#include <stdio.h>
void main()
{
char a;
printf("\n请输入一个字符:");
scanf("%c",&a);
if(a>='0' && a<='9')
{
printf("你输入的字符为数字");
}
else
{
printf("你输入的字符不为数字\n");
}
}
-------------------------------------------------------------------------------------------
Hw3_2题目
在邮政系统中,收费是这样规定的,当邮包重量<=10公斤时,按每公斤0.25元收费;如果超过10公斤时,超过部分按0.34元收费,其余部分按0.25元收费。
现要求用户输入邮包重量,请输出应付的邮资。
#include <stdio.h>
void main()
{
float a,b;
printf("\n请输入邮包总量:");
scanf("%f",&a);
if(a<=10)
{
b=a*0.25;
}
if(a>10)
{
b=10*0.25+(a-10)*0.34;
}
printf("你应该支付的邮资为:%.2f",b);
}
-------------------------------------------------------------------------------------------
C语言第四章家庭作业
Phw68_1题目
某商场打折促销商品中,购买某种商品根据购买数量(x)给予不同的折扣,根据用户输入的数
量及该商品的单价,输出用户应付的金额。折扣信息表如下:
数 量 折扣率
x<5 不折扣
5≤x<10 1%
10≤x<20 2%
20≤x<30 4%
30≤x 6%
Phw55_2题目
编写一个程序,要求实现用户在输入今天星期几(1~7)时,显示当天食谱的内容。食谱如下:
星 期 食 谱
一 青菜
二 鸡
三 鱼
四 肉
五 鸡蛋
六 豆制品
日 海鲜
-------------------------------------------------------------------------------------------
Hw4_1题目
聚会时规定:男生,超过18岁可以喝酒,没有超过18岁时,喝饮料;
女生,超过20岁时,可以喝酒,没有超过20岁时,喝饮料;
请输入学生性别和学生的年龄,并根据输入的情况来判断喝什么!
#include <stdio.h>
void main()
{
char a;
int b;
printf("\n 请输入你的年龄:");
scanf("%d",&b);
printf("\n 请输入您的性别(n/v):");
scanf(" %c",&a);
if (a=='n' && b>18)
{
printf("该男生可以喝酒");
}
else if(a=='v' && b>20)
{
printf("该女生可以喝酒");
}
else
{
printf("该同学只能喝饮料");
}
}
Hw4_2题目
北大青鸟要求:在推荐就业时,按以下几个标准来衡量
1):项目个数在5个以内:不能推荐就业
2):项目个数在6到10个以内:只能推荐重庆市内的小公司
3):项目个数在11到20个以内:可以推荐重庆市内的任何公司
4):项目个数在20个以上:可能进外企
#include <stdio.h>
void main()
{
int a;
printf("\n 请输入您的项目数:");
scanf("%d",&a);
if(a<=5)
{
printf("对不请,你不能推荐就业!!");
}
else if(a>=6 && a<=10)
{
printf("只能推荐到重庆的小公司!!");
}
else if(a>=11 && a<=20)
{
printf("恭喜你!!你可以选择重庆的所以有公司");
}
else if(a>=20)
{
printf("哇!!你可以进外资企业了");
}
else
{
printf("输入错误!!");
}
}
-------------------------------------------------------------------------------------------
C语言第六章家庭作业
Hw6_1题目:
求1-1000中能被7或能被11,但不能同时被7和11整除的数。每10个为一行显示。
#include <stdio.h>
void main()
{
int a,b=0; //定义变量
for(a=1;a<=1000;a++) //判断A这个变量如果为真将执行下面的循环
{
if((a%7!=0&&a%11==0)||(a%11!=0&&a%7==0)) //计算公式
{
printf("%4d",a); //打印输出
b++;
if(b%10==0) // 控制每行输入10个
{
printf("\n"); //换行
}
}
}
printf("\n"); //换行
}
-------------------------------------------------------------------------------------------
Hw6_2题目:
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#include <stdio.h>
void main()
{
int a,b,c; //定义3个变量
for(a=1;a<=4;a++)//先循环(FOR语句是先循环在判断)
for(b=1;b<=4;b++)
for(c=1;c<=4;c++)
{
if(a!=b&&a!=c&&b!=c)//判断为真就继续循环,为假是执行以下语句
{
printf("%d%d%d\t",a,b,c);// 打印输出
}
}
}
-------------------------------------------------------------------------------------------
两个数组的连接
#include <stdio.h>
#define N 7
#define M 14
void main()
{
char a[N],b[N],c[M];
char *x,*y,*z;
printf("\n请输入字符");
scanf("%s",a);
x=a;
printf("\n请输入字符");
scanf("%s",b);
y=b;
z=c;
while(*x!='\0')
{
*z=*x;
z++;
x++;
}
while(*y!='\0')
{
*z=*y;
z++;
y++;
}
*z='\0';
z=c;
while(*z!='\0')
{
printf("%c",*z);
z++;
}
printf("\n");
}
-------------------------------------------------------------------------------------------
当选班长
#include <stdio.h>
#define MAX 50
void main()
{
int i,k,m,n,num[MAX],*p;
printf("请输入总人数:");
scanf("%d",&n);
p=num;//指向数组的指针
for(i=0;i<n;i++)
*(p+i)=i+1;//为数组的元素赋值为n个人的编号1~n
i=0;//控制指针偏移
k=0;//报数计算器1~3
m=0;//退出人数计算器
while(m<n-1)
{
if(*(p+i)!=0)//开始报数,只要编号不等于0 则报数计算器加1
k++;
if(k==3)//报数到(等于)3时候
{
*(p+i)=0;//将该人的编号设置为0 表示该人退出
k=0;//报数器设置为0
m++;//每退出一个人 计算器则+1
}
i++;//指针移动到下一个元素
if(i==n)//则到了n个人。则从第一个人开始
i=0;
}
while(*p==0)//检查编号不为0的人 则最后留下来
p++;
printf("编号为%d的学员被当选班长",*p);
}
-------------------------------------------------------------------------------------------
输入一串字符,统计大大写字母的个数,并强调统计必须用函数
#include <stdio.h>
#include <string.h>//字符头文件
int capcount(char *s);//自定函数(求大写字母个数计算公式)
void main()
{
char str[50];//定义一个数组变量
printf("请输入一串字符:\n");//信息提示
gets(str);//输入
printf("大写字符个数为:%d\n",capcount(str));//输出最后结果
}
int capcount (char *s)//自定函数(求大写字母个数计算公式)
{
int cap=0;//定义一个临时变量储存大写字母个数
while(*s!='\0')//是否等于空字符
{
if(*s>=65 && *s<=90)//不等于空字符 然后查找这写字符
cap++;//查找到一个加1
s++;//比较一次指针像后移动
}
return(cap);//返回一个值
-------------------------------------------------------------------------------------------
输入几个国家名,并将它们排序(字符串)
#include <stdio.h>
#include <string.h>
#define N 5
void main()
{
char string[N][20],dummy[20];
int i,j;
printf("\n请输入5国家(地区)的名称\n");
for(i=0;i<N;i++)
{
gets(string[i]);
}
for(i=1;i<N;i++)
{
for(j=1;j<=N-i;j++)
{
if(strcmp(string[j-1],string[j])>0)
{
strcpy(dummy,string[j-1]);
strcpy(string[j-1],string[j]);
strcpy(string[j],dummy);
}
}
}
printf("按照字母排序如下:\n");
for(i=0;i<N;i++)
{
printf(" %s \n",string[i]);
}
}
-------------------------------------------------------------------------------------------
编写一个程序用于创建一格结构BOOK,用来储存书的信息:书名,作者姓名,页数, *(结构)
*和价格,接受输入和输出
#include <stdio.h>
#include <string.h>
/*自定BOOK结构*/
struct book
{
char name[50];
/*定义数组变量--用来存储书名*/
char author[25];
/*定义数组变量--用来存储作者*/
int pages;
/*定义整型变量--用来存储页数*/
float price;
/*定义符典型变量--用来存储价格*/
};
void main()
{
struct book b1;
/*结构变量*/
printf("\n\t请输入书的详细信息:\n");
printf("\n书名:");
gets(b1.name);
/*以上为:提示信息及输入*/
printf("\n作者:");
gets(b1.author);
/*以上为:提示信息及输入*/
printf("\n页数:");
scanf("%d",&b1.pages);
/*以上为:提示信息及输入*/
printf("\n价格:");
scanf("%f",&b1.price);
/*以上为:提示信息及输入*/
printf("\n\n\n\n\t书的详细信息");
/*以上为:提示信息*/
printf("\n书名:%s",b1.name);
/*打印结果*/
printf("\n作者:%s",b1.author);
/*打印结果*/
printf("\n页数:%d",b1.pages);
/*打印结果*/
printf("\n价格(RMB): %5.2f元\n\n\n\n\n",b1.price);
/*打印结果*/
}