主页 > 程序语言 > c语言程序设计范例

c语言程序设计范例

2023-12-24 17:39来源:m.sf1369.com作者:宇宇

一、c语言程序设计范例

#include<stdio.h>

void main()

{

   int a[4][4];

   int i,j;

   for(i=0;i<4;i++)

    {

    for(j=0;j<4;j++)

    {

    scanf(%d,&a[i][j]);

    }

    }

  for(i=0;i<4;i++)

    {

    for(j=0;j<4;j++)

    {

    int temp;

    temp=a[i][j];

    a[i][j]=a[j][i];

    a[j][i]=temp;

    }

    }

   for(i=0;i<4;i++)

    {

    for(j=0;j<4;j++)

    {

    printf(%d,a[i][j]);

    }

    printf(\n);

    }

}

二、c++编程得书写格式。

第一,加空格;比如这个输出:cout<<t.hour<<:<<t.min<<:<<t.sec<<endl;

如果是在写一些大的程序出现拼写错误时,很难找出拼写错误,应写成这样的格式:

cout << t.hour << : << t.min << : << t.sec << endl;

第二,在写“CLASS”或是“STRUCT”的时候,注意空行;

第三,“CLASSES”写在头文件里,与“CLASS”相对的定义或是“FUNCTION”写在另一个.cpp的文件里,文件名取和“CLASS”头文件一样的名,最后就是把测试文件单放在一个文件里,这样的话,再大的程序也能方便管理。

三、关于编程的书写格式

这只是一种默认的书写规范,且用eclispe等编程工具选中要规范化的代码,按ctrl+shift+f就是自动加空格的。

关于不加分号的说法是错误的:

int a = 1

int b = 2;

// 这样编译是不会通过的至于变量名和类名是否用中文,当然是可以的。

总的来说,这些规范只是用来使代码看起来更整齐美观,当然每个人审美观也不一样,或者说性格使然自己不想这么麻烦;但我觉得养成良好的编码习惯对于你日后的工作场合很有必要性。

四、c语言写菜单的示例?

#include <stdio.h>

#include <windows.h>

#include <string.h>

#include <stdlib.h>

#define MAX 1000

void main1()

{

int a, *p;

p = &a;

printf(please input a number:);

scanf(%d, p); // 对p指向的a地址输入值

printf(a=%d\n*p=%d\n, a, *p); // 输出a地址存的值 输出p指向的地址a的内容

}

void main2()

{

int a,*p;

p = &a;

printf(please input a number:);

scanf(%d, &a); // 对p指向的a地址输入值

printf(p=%p *p=%d\n, p,*p);// 输出p指向的a的首地址号不足的位数用00补齐 输出p指向的地址a的内容

printf(%4d%4d %x\n, (*p)++, ++(*p), p);//输出现在p指向的地址,输出p指向的地址内的值加一后的值,输出p指向的地址内的值加一后的值再加一

printf(%4d%4d\n, *p++, *p);// 输出上个程序加一后的p指向的地址的内容

printf(p=%x\n, p);// 输出现在p指向的地址号

}

void sub(int x, int y, int *z)

{

*z = y - x;

}

void main3()

{

int a, b, c;

sub(10, 5, &a);// 把10和5分别富值给x,y 把a的地址传个*z在sub中对z指向的a地址富值

sub(7, a, &b);// 把7和a的值分别富值给x,y 把b的地址传个*z在sub中对z指向的b地址富值

sub(a, b, &c);// 把a的值和吧的值分别富值给x,y 把c的地址传个*z在sub中对z指向的c地址富值

printf(a=%d\nb=%d\nc=%d\n, a, b, c);// 输出被赋值后的a b c

}

void main4()

{

int a[] = {1, 2, 3, 4, 5};

int *p = NULL;

p = a;// p指向a的首地址

printf(%d , *p);// 输出p指向的a首地址的第一个元素的内容

printf(%d , *(++p));// p的指向后移动指向a的第二个元素并输出她的内容

printf(%d , *++p);// p的指向后移动指向a的第二个元素并输出她的内容

printf(%d , *(p--));// p输出值后指向的位子向前移一个元素

printf(%d , *p++);// 输出p的值后再将p的指向向后移一个元素

printf(%d , *p);// 输出p移后的指向的地址的值

printf(%d , ++(*p));// 对p指向的地址的值加一后输出值

printf(%d\n , *p);// 输出现在p指向的地址的值

}

f(int *t)

{

*t =10;

}

void main5()

{

int *p, a;

a = 2;

p = &a;// p指向a的地址

f(p);// 把p指向的a的地址传给*t在子函数中对a进行重新赋值;

printf(a=%d\n, a);// 输出a重新赋的值

}

void main6()

{

int a[10], j, *p;

for (j = 0; j < 10; j++)

a[j] = j+1; // 对数组a进行赋值

printf(\nOutput array using a[j]:\n);

for (j = 0; j < 10; j++)

printf(%d , a[j]);// 输出赋值后的a

p = a; // p指向数组a首地址

printf(\nOutput array using p[j]:\n);

for (j = 0; j < 10; j++)

printf(%d , p[j]); // 把指针p当数组用输出p指向的a的各个元素

printf(\nOutput array using*( p+j):\n);

for (j = 0; j < 10; j++)

printf(%d , *(p+j)); // 把指针p当数组用输出p指向的a的各个元素

printf(\nOutput array using*( a+j):\n);

for (j = 0; j < 10; j++)

printf(%d , *(a+j)); // 使用数组a的指针性质

printf(\nOutput array using *p++:\n);

for (j = 0; j < 10; j++)

printf(%d , *p++); // 把指针p当数组用输出p指向的a的各个元素

printf(\n);

}

void Input(float *p,int n)

{

int i;

printf(Pleese input %d score: ,n);

for(i=0;i<n;i++)

{

scanf(%f,(p+i));

}

}

void Output(float *q,int n)

{

int i;

printf(Output the score:\n);

for(i=0;i<n;i++)

{

printf(%f\n,*(q+i));

}

}

void FMax(float score[], int n,float *maxs,int *maxn )

{

int i;

*maxs=score[0];

for(i=1;i<n;i++)

{

if(score[i]>*maxs)

{

*maxs=score[i];

*maxn=i;

}

}

}

void FMin(float score[], int n,float *mins,int *minn )

{

int i;

*mins=score[0];

for(i=1;i<n;i++)

{

if(score[i]<*mins)

{

*mins=score[i];

*minn=i;

}

}

}

void main7()

{

float score[MAX],maxs,mins;

int maxn,minn;

Input(score,10);

Output(score,10);

FMax(score,10,&maxs,&maxn);

FMin(score,10,&mins,&minn);

printf(maxscore=%.2f,\t\tmaxnum=%d\nminscore=%.2f,\t\tminnum=%d\n,maxs,maxn,mins,minn);

}

int aver(int (*p)[5],int q)

{

int j,m=0,b;

for(j=0;j<5;j++)

{

m+=*(*(p+q-1)+j);

}

b=m/5;

return(b);

}

void main8()

{

int i,j,(*pscore)[5],a,n,q[10][5];

pscore=q;

printf(Please input ten students's five scores:\n);

for(i=0;i<10;i++)

{

for(j=0;j<5;j++)

{

scanf(%d,&pscore[i*5+j]);

}

}

printf(Please input students's number:);

scanf(%d,&n);

a=aver(pscore,n);

printf(第%d学生五门成绩的平均值为:%d\n,n,a);

}

void main9()

{

char *str1,*str2,*str3,a[100],b[100],c[100];

str1=&a[0];

str2=&b[0];

str3=&c[0];

printf(str1=);

gets(str1);

printf(str2=);

gets(str2);

strcat(str1,str2);// 把字符串str2接到字符串str1的后面

printf(str1=%s\n,str1);// 输出连接后的字符串str1

strcpy(str3,str1);// 把字符串str1接到字符串str3的后面

printf(str3=%s\n,str3);// 输出连接后的字符串str3

}

void main10( )

{

char *p = abcdefghijklmnopq;

while( *p++!='e')// 指针p的指向地址向后移一个元素判断是不是等于'e'

printf(%c\n, *p);// 如果判断等于'e'就输出p指向的地址内的字符

}

void main11()

{

char b[] = program;

char *a = PROGRAM;

int i = 0;

printf(%c%s\n, *a,b+1);// 先对数组b加一后输出b 再输出*a

while (putchar(*(a+i)))

{

i++;

}

printf(i = %d\n, i);// 判断a有多少个字符输出

while (--i)

{

putchar(*(b + i)); // 将p字符串逆向输出不输出最后一个

}

printf(\n%s\n, &b[3]);// 输出b字符串的最后四位

}

void main12( )

{

int a=1, *p, **pp;

pp =&p;

p =&a;

a++;

printf (%d,%d,%d\n,a,*p, **pp);// a是a加一后的值 *P是指向的a地址内的值 **pp是指向的 *P是指向的a地址内的值

}

void main13()

{

char *alpha[7]={ ABCD,EFGH ,IJKL ,MNOP ,QRST ,UVWX ,YZ };

char **p;

int i;

p = alpha;

for(i = 0;i < 4;i++)

printf(%c, *(p[i]));// 输出指向的前四个字符串的第一个字母

printf(\n);

}

void main14()

{

char n[100];

char *s [ ]={Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Ten};

int i,x,len;

printf(输入一串阿拉伯数字:\n);

gets(n);

len=strlen(n);// 计算输入的n的长度

for(i=0;i<len;i++)

{

x=*(n+i)-48; /* 48为字符0的ASCII码 */

printf(%s ,s[x]);// 将输入的数字当地址号

}

printf(\n);

}

unsigned int MyStrlen(char s[ ])

{

char *p = s;

while (*p !='\0' )

{

p++;

}

return(p-s );

}

void main15()

{

char a[1000];

int b;

printf(Input char number:);

gets(a);

b= MyStrlen(a);

printf(The number's len:%d\n,b);

}

void reading(char (*a)[5], int *num)

{

int i=0;

gets(a[i]);

while(!strcmp(a[i],****)==0)

{

gets(a[i]);

}

*num=i;

}

void findmax(char (*a)[5], int *num,char **max)

{

int i;

for (*max=a[0],i=1;i<*num;i++)

{

if(strcmp(a[i],*max)>0)

*max=a[i];

}

}

void main16()

{

char ss[10][5],*ps;

int n;

reading(ss,&n);

findmax(ss,&n,&ps);

printf(max=%s\n,ps);

}

int *search1(int(*s)[4],int *len,int *n)

{

int i,j;

for (i = *n; i<*len; i++)

{

for (j=0; j<4; j++)

{

if (*(*(s+i)+j) < 60)

{

*n=i;

return s[i];//如有不及格的返回地址

}

}

}

return NULL;//如果没有返回NULL,好打出没有成绩不及格的同学

}

int *search2(int(*s)[4],int *len,int *n)

{

int i,j;

for (i = *n; i<*len; i++)

{

for (j=0; j<4; j++)

{

if (*(*(s+i)+j) < 90)

{

*n=i;

return s[i];//如有不及格的返回地址

}

}

}

return NULL;//如果没有返回NULL,好打出没有成绩不及格的同学

}

void main17()

{

int i,j,n,score[1000][4],count=0,x;

int *p;

p=&score[0][0];

printf(Pleese input the students's total number(小于1000):\n );

scanf(%d,&n);

printf(Pleese input every student's score:\n );

for(i=0;i<n;i++)

{

for(j=0;j<4;j++)

{

scanf(%d,&p[i*4+j]);

}

}

printf(是100分制请输入100,150分制请输入150:);

scanf(%d,&x);

switch(x)

{

case 100:

i=0;//从第一个开始擦找

while (i<n+1)

{

p=search1(score,&n, &i);

if (p)//如果有

{

printf(不及格的是第 %d 个人,三科成绩分别为:\n,i+1);

for (j = 0; j < 4; j++)

{

printf(%d, , *p++);

}

count++;//记录有几个不及格的

printf(\n);

}

i++;

}

if (!p&&count==0)//如果没有

{

printf(没有成绩不及格的同学\n);

}

break;

case 150:

i=0;//从第一个开始擦找

while (i<n+1)

{

p=search2(score,&n, &i);

if (p)//如果有

{

printf(不及格的是第 %d 个人,三科成绩分别为:\n,i+1);

for (j = 0; j < 4; j++)

{

printf(%d, , *p++);

}

count++;//记录有几个不及格的

printf(\n);

}

i++;

}

if (!p&&count==0)//如果没有

{

printf(没有成绩不及格的同学\n);

}

break;

default:

printf(Incorrect letter entered .);

}

}

#define MAXI 16

#define N 5

void sort(char (*s)[MAXI],int n)

{

int i , j;

char *temp =(char *)malloc(sizeof(char ) * MAXI) ;

for(i = 0; i < n-1 ; i++)

{

for(j = i+1; j < n ; j++)

{

if(strcmp(s[i] , s[j]) > 0) //这里的排序不能用s[i] = s[j],错误:incompatible types in assignment

{

strcpy(temp,s[i]);

strcpy(s[i],s[j]);

strcpy(s[j],temp);

}

}

}

free(temp);

}

void print(char (*s)[MAXI],int n)

{

int i;

for(i = 0; i < n ; i++)

{

printf(%s\n,s[i]);

}

}

void main18()

{

int index;

char str[N][MAXI];

for(index = 0; index < N ;index++)

{

printf(请输入第%d个字符串:\n,index+1);

gets(str[index] );

}

sort(str,N);

print(str,N);

}

void main19()

{

printf(\t\t\t\t欢迎使用);

printf(\n);

printf(\t\t*************************************************);

printf(\n\t\t*\t\t\t\t\t\t*);

printf(\n\t\t*\t\t\t\t\t\t*);

printf(\n\t\t*\t\t输入1.第①个实验\t\t*);

printf(\n\t\t*\t\t输入2.第②个实验\t\t*);

printf(\n\t\t*\t\t输入3.第③个实验\t\t*);

printf(\n\t\t*\t\t输入4.第④个实验\t\t*);

printf(\n\t\t*\t\t输入5.第⑤个实验\t\t*);

printf(\n\t\t*\t\t输入6.第⑥个实验\t\t*);

printf(\n\t\t*\t\t输入7.第⑦个实验\t\t*);

printf(\n\t\t*\t\t输入8.第⑧个实验\t\t*);

printf(\n\t\t*\t\t输入9.第⑨个实验\t\t*);

printf(\n\t\t*\t\t输入10.第⑩个实验\t\t*);

printf(\n\t\t*\t\t输入11.第⑾个实验\t\t*);

printf(\n\t\t*\t\t输入12.第⑿个实验\t\t*);

printf(\n\t\t*\t\t输入13.第⒀个实验\t\t*);

printf(\n\t\t*\t\t输入14.第⒁个实验\t\t*);

printf(\n\t\t*\t\t输入15.第⒂个实验\t\t*);

printf(\n\t\t*\t\t输入16.第⒃个实验\t\t*);

printf(\n\t\t*\t\t输入17.第⒄个实验\t\t*);

printf(\n\t\t*\t\t输入18.第⒅个实验\t\t*);

printf(\n\t\t*\t\t输入0.结束\t\t\t*);

printf(\n\t\t*************************************************\n);

}

void main()

{

int n,m;

do{

system(cls);

main19();

printf(请输入所需要选择运行的程序的序号:);

scanf(%d,&n);

switch(n)

{

case 1:

main1();

break;

case 2:

main2();break;

case 3:

main3();break;

case 4:

main4();break;

case 5:

main5();break;

case 6:

main6();break;

case 7:

main7();break;

case 8:

main8();break;

case 9:

main9();break;

case 10:

main10();break;

case 11:

main11();break;

case 12:

main12();break;

case 13:

main13();break;

case 14:

main14();break;

case 15:

main15();break;

case 16:

main16();break;

case 17:

main17();break;

case 18:

main18();break;

default:

printf(选错了!!!!!!!\n);

}

printf(不想继续就输入0否则输入任意数字:);

scanf(%d,&m);

}while(m!=0);

}

相关推荐

哪些编程语言是函数式的

程序语言 2024-01-14

VB编程的函数详解

程序语言 2024-01-02

c语言扑克牌问题

程序语言 2023-12-28

iphone语言与地区有什么用?

程序语言 2023-12-19

C语言程序,怎么使用,

程序语言 2023-12-17

把word嵌入到C#程序中

程序语言 2023-11-26

HTML是不是编程语言?

程序语言 2023-11-17