C语言精华代码

10 篇文章 0 订阅

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);
/*打印结果*/

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值