<=9;a++) { str[a]=(rand()%26+97);//随即产生a-z的10个字母 printf("%c",str[a]); } printf("\n键入相同的字符串\n"); fflush(stdin);// 清空缓冲区 gets(str1);//用户输入 for(a=0;a<=9;a++) { if(str[a]==str1[a])//若第a个字符正确,输出并且正确字符计数+1 { printf("%c",str[a]); count1++; } else//若不正确,输出*并且错误字符计数+1 { printf("*"); count2++; } }}void func2(){ int a,b; char str[10],str1[10]; for(a=0;a<=9;a++)//随即产生a-z或A-z的10个字母 { b=rand()%2+1; if(b==1) { str[a]=(rand()%26+65);//A-Z printf("%c",str[a]); } else { str[a]=(rand()%26+97);//a-z printf("%c",str[a]); } } printf("\n键入相同的字符串\n"); fflush(stdin); gets(str1); for(a=0;a<=9;a++) { if(str[a]==str1[a]) { printf("%c",str[a]); count1++; } else { printf("*"); count2++; } }} 两个函数除了大小写基本一样,就不重写了 。
7. C语言程序注释 **** C语言写注释:
1、可以用任何一种文字
2、格式 /* 注释 */
3、可放在任何地方
**** 好的注释:
1、能看懂
2、样式统一
3、例
/*****************************************************
主程序
*****************************************************/
void main(void)
**** 还可以采用这些方式
1、/* 注释 */
2、//注释
3、例
/*****************************************************/
//主程序
/*****************************************************/
void main(void)
8. C语言程序中的注释格式由什么组成 1、少了很多大括号,包括while的,if else的
2、while(feof(fp1)!=EOF) 最好改为while(!feof(fp1))
3、我改后测了一下,这个程序只能删除“/* */”的注释,对“//”的注释无效 。再改一下状态机吧 。
4、下面的程序我把格式整理了一下,没改什么算法部分 。写程序要规范 。
#include "stdio.h"
void delcomm(FILE*fp1,FILE*fp2)
{
char c;
int i=0;
while(!feof(fp1))
{
printf("test\n");
if((c=fgetc(fp1))=='\n')
fprintf(fp2,"\n");
else
{
switch(i)
{
case 0:
if (c=='/')
i=1;
else
fprintf(fp2,"%c",c);
break;
case 1:
if (c=='*')
i=2;
else
{
fprintf(fp2,"/%c",c);
i=0;
}
break;
case 2:
if (c=='*')
i=3;
break;
case 3:
i=(c=='/')?0:2;
break;
}
}
}
}
int main()
{
FILE*fp1,*fp2;
if ((fp1=fopen("/home/hxl/test/md5.c","r"))==NULL)
{
printf("wrong!");
exit(0);
}
fp2=fopen("/home/hxl/test/md5out.c","w");
delcomm(fp1,fp2);
fcloseall();
}
9. C语言程序注释 #include //标准输入输出库所在的头文件//自定义函数声明void add(int *m,int *m1,int *m2,int r,int c); //矩阵加法void sub(int *m,int *m1,int *m2,int r,int c); //矩阵减法void mult(int *m,int *m1,int *m2,int r,int p,int c); //矩阵乘法void disp(int *m,int r,int c); //打印数组数据(矩阵里的数据)//主测试函数void main(){int a[3][4]={{4,3,5,2},{5,1,7,3},{2,7,6,2}};int b[3][4]={{2,4,4,-7},{4,2,5,-8},{7,-3,-4,2}};int c[4][3]={{5,4,4},{1,3,1},{4,4,2},{7,1,3}};int d[3][4]={0};int e[3][4]={0};int f[3][3]={0};printf("\nA(3x4):\n");disp(a[0],3,4); //显示矩阵aprintf("\nB(3x4):\n");disp(b[0],3,4); //显示矩阵badd(d[0],a[0],b[0],3,4); // 计算矩阵 a + b,并将结果存到d中printf("\nD(3x4)=A+B:\n");disp(d[0],3,4); //显示a+b的结果(即d中的数据)sub(e[0],a[0],b[0],3,4);// 计算矩阵 a - b,并将结果存到e中printf("\nE(3x4)=A-B:\n");disp(e[0],3,4);//显示a-b的结果(即e中的数据)printf("\nA(3x4):\n");disp(a[0],3,4); // 显示矩阵aprintf("\nC(4x3):\n");disp(c[0],4,3); //显示矩阵cmult(f[0],a[0],c[0],3,4,3); //计算矩阵a*c 并将结果存到f中printf("\nF(3x3)=A*C:\n");disp(f[0],3,3); //显示a*c的结果(即f中的数据)}//函数定义/* *****函数功能:两个矩阵进行加法运算 C = A+B*****参数: m 指向运算结果存放的二维数组(即矩阵) C的首地址***** m1为矩形A的首地址,m2为矩形B的首地址***** r 为矩阵的行数,c为矩阵的列数*(m+i*c+j) = *(m1+i*c+j) + *(m2+i*c+j);这个表示将矩阵A的第i行j列的数据 与 矩阵B的第i行j列的数据 相加然后将结果赋值给矩阵C的第i行j列数据*(m1+i*c+j) :m1+i*c+j 这个表示指向矩阵A的第i行第j列的数据的指针,则 *(m1+i*c+j) 就表示矩阵A的第i行第j列的数据*(m2+i*c+j) :m2+i*c+j 这个表示指向矩阵B的第i行第j列的数据的指针,则 *(m2+i*c+j) 就表示矩阵B的第i行第j列的数据*(m+i*c+j) : m+i*c+j 这个表示指向矩阵C的第i行第j列的数据的指针,则 *(m+i*c+j) 就表示矩阵C的第i行第j列的数据这里是用指针实现的,*(m+i*c+j) = *(m1+i*c+j) + *(m2+i*c+j);等价于c[i][j] = a[i][j] + b[i][j];*/void add(int *m,int *m1,int *m2,int r,int c) //{int i,j;for(i=0; i