郭敬明收入:c语言问题

来源:百度文库 编辑:高校问答 时间:2024/05/08 14:14:36
#include<stdio.h>
int count[128];
main()
{ char line[200];
int k=0;
printf("\n Enter string:");
gets(line);
while (line[k]!='\0')
count [line[k++]]++;
for (k=0;k<=127;k++)
if (count[k]>0)
printf ("%c=%d\t",k,count[k]);
}
谁帮我分析一下,看不大懂!以下还有三个例子不知道哪错了请高手帮忙!!
long a1(int a,int b)
{ int s,i;
a=b1(a),b=b1(b);
for (i=a-1;i>=1;i--) a=i*a;
for (i=b-1;i>=1;i--) b=i*b;
s=a+b;
return s;
}
int b1(int x)
{ int k;
k=x*x;
return k;
}
main ()
{ int a,s,b;
printf ("input two numbers:\n");
scanf ("%d %d",&a,&b);
s=a1(a,b);
printf ("output :%d\n",s);
}

main()
{ int i,j;
char a[100],b[100],m;
printf("Enter the string:\n");
gets(a);
for (i=0;a[i]!='\0';i++)
{ for (j=strlen(a)-i;j>=0;j--)
{ m=a[j];b[i]=m; }
}
printf("\n%s",b);
}

#include<stdio.h>
#include<string.h>
main()
{ int i,j;
char a[50]={0};
char b[3][50];
j=0;
for (i=0;i<=2;i++)
{ gets(b[i][50]);
if (strcmp(a,b[i][50])<0) strcpy(a,b[i][50]);
else ;
}
printf("\n The largest string is : \n %s",a);
}


//这段程序统计输入一行字符中每个字符的个数
#include<stdio.h>
int count[128]; //一般全局数组变量每个元素初始化为0
main()
{ char line[200];
int k=0;
printf("\n Enter string:");
gets(line); //读入一行保存到line字符数组中
while (line[k]!='\0')
count [line[k++]]++; //count数组下标为line[k](ascii码)的元素加一
for (k=0;k<=127;k++)
if (count[k]>0)
printf ("%c=%d\t",k,count[k]); //输出所有出现的字符及其出现的个数
}

你的第一个程序输入大了会溢出,因为你计算了输入平方的阶乘并求和,第二个程序字符数组b没加'\0'结束,第三个程序将b[i][50]改成b[i]就好了,b[i]可以理解为表示数组第i行的首地址与&b[i][0]等价。

楼上分析的不错,楼主以后要学着自己分析程序