为什么我的C语言程序一运行就显示停止工作?有两个这样的程序,求大神解答!!
一个是(加密一个字符串):#include<stdio.h>#include<string.h>main(){chara[100],b[100],c[100];print...
一个是(加密一个字符串):
#include<stdio.h>
#include<string.h>
main(){
char a[100],b[100],c[100];
printf("请输入一个字符串:");
scanf("%s",a);
int i,j;
i=strlen(a);
for(j=0;j<=i;j++){
b[j]=a[j]*2;
}
printf("加密后的字符串是%s:",b[100]);
printf("加密前的字符串是%s:",a[100]);
}
还有一个(统计一个字符串中各个字母出现的频率):
#include<stdio.h>
#include<string.h>
main(){
char a[100];
float b[100];
int num[100];
printf("请输入一个字符串:");
scanf("%s",a);
int i,j;
i= strlen(a);
for(j=0;j<=26;j++)
{
num[a[j]-'a']++;
}
for(j=0;j<=i;j++)
{
b[j]=num[j]/i;
if(b[j]!=0){
printf("%s出现的频率是%d",a[j],b[j]);
}return 0;
}
} 展开
#include<stdio.h>
#include<string.h>
main(){
char a[100],b[100],c[100];
printf("请输入一个字符串:");
scanf("%s",a);
int i,j;
i=strlen(a);
for(j=0;j<=i;j++){
b[j]=a[j]*2;
}
printf("加密后的字符串是%s:",b[100]);
printf("加密前的字符串是%s:",a[100]);
}
还有一个(统计一个字符串中各个字母出现的频率):
#include<stdio.h>
#include<string.h>
main(){
char a[100];
float b[100];
int num[100];
printf("请输入一个字符串:");
scanf("%s",a);
int i,j;
i= strlen(a);
for(j=0;j<=26;j++)
{
num[a[j]-'a']++;
}
for(j=0;j<=i;j++)
{
b[j]=num[j]/i;
if(b[j]!=0){
printf("%s出现的频率是%d",a[j],b[j]);
}return 0;
}
} 展开
3个回答
展开全部
#include <stdio.h>
#include <string.h>
int main()
{
char a[100],b[100],c[100];
printf("请输入一个字符串:");
scanf("%s",a);
//接收回车
getchar();
int i,j;
i=strlen(a);
for(j=0;j<=i;j++){
//蠢陵消x2容易超出128,所以不如+上某个数
b[j]=a[j]+10;
}
//字符串结束
b[j]='\0';
printf("加密后的字符串是%s\n",b);
printf("加密前的字符串是%s\n",a);
}
//输入必须是连续的英文字母串,不能出现空格,回车等其它字符
#include <stdio.h>
#include <string.h>
int main()
{
const float EPSINON=0.000000001;
char a[100];
float b[100];
int num[100],i,j;
printf("请输入一个字符串带知:");
scanf("%s",a);
//接收回车
getchar();
i= strlen(a);
printf("i=%d\n",i);
for(j=0;j<=26;j++)
{
num[a[j]-'a'汪扮]++;
}
for(j=0;j<=26;j++)
{
//浮点数的运算,需要先把数据转换为浮点数
b[j]=(float)num[j]/(float)i;
//浮点数与0的比较
if(b[j]>=-EPSINON&&b[j]<=EPSINON){
continue;
}
else
{
printf("%c出现的频率是%f\n",'a'+j,b[j]);
}
}
return 1;
}
#include <string.h>
int main()
{
char a[100],b[100],c[100];
printf("请输入一个字符串:");
scanf("%s",a);
//接收回车
getchar();
int i,j;
i=strlen(a);
for(j=0;j<=i;j++){
//蠢陵消x2容易超出128,所以不如+上某个数
b[j]=a[j]+10;
}
//字符串结束
b[j]='\0';
printf("加密后的字符串是%s\n",b);
printf("加密前的字符串是%s\n",a);
}
//输入必须是连续的英文字母串,不能出现空格,回车等其它字符
#include <stdio.h>
#include <string.h>
int main()
{
const float EPSINON=0.000000001;
char a[100];
float b[100];
int num[100],i,j;
printf("请输入一个字符串带知:");
scanf("%s",a);
//接收回车
getchar();
i= strlen(a);
printf("i=%d\n",i);
for(j=0;j<=26;j++)
{
num[a[j]-'a'汪扮]++;
}
for(j=0;j<=26;j++)
{
//浮点数的运算,需要先把数据转换为浮点数
b[j]=(float)num[j]/(float)i;
//浮点数与0的比较
if(b[j]>=-EPSINON&&b[j]<=EPSINON){
continue;
}
else
{
printf("%c出现的频率是%f\n",'a'+j,b[j]);
}
}
return 1;
}
追问
第二个好像修改了还是不行啊,而且我们还没有学浮点的计算哎~~~十分期待大神帮帮我!!第二个,拜托了啊!
追答
第二个,我这边可以正常运行的。所以程序应该没有问题....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
#include<string.h>
main(){
char a[100],b[100],c[100];
printf("请输入一个字符串:");
scanf("%s",a);
int i,j;
i=strlen(a);
for(j=0;j<=i;j++){
b[j]=a[j]*2;
}
printf("加密后的字符串是%s:",b); //b[100]是一个字符,\0 不是字符串
printf("加密扮渗衫前的字符串是%s:",a);
}
#include<stdio.h>
#include<string.h>
int main()
{
char a[100];
float b[100];
int num[100];
printf("请输入一个字符串:");
scanf("%s",a);
int i,j;
i= strlen(a);
for(j=0; j<100; j++)//赋初值,默厅腔认是很大的负数
{
num[j] = 0;
}
for(j=0; j<i; j++) //循环喊消i次,不是26次
{
num[a[j]-'a']++; //万一是大写呢,该判断的
}
for(j=0;j<26;j++)//共26个字母,不该循环i次
{
b[j]=num[j]/(float)i; //类型转换
if(b[j] > 0.0001)
{
printf("%c出现的频率是%f\n",'a'+j,b[j]); //%s %d 写错了
}
}
return 0;
}
#include<string.h>
main(){
char a[100],b[100],c[100];
printf("请输入一个字符串:");
scanf("%s",a);
int i,j;
i=strlen(a);
for(j=0;j<=i;j++){
b[j]=a[j]*2;
}
printf("加密后的字符串是%s:",b); //b[100]是一个字符,\0 不是字符串
printf("加密扮渗衫前的字符串是%s:",a);
}
#include<stdio.h>
#include<string.h>
int main()
{
char a[100];
float b[100];
int num[100];
printf("请输入一个字符串:");
scanf("%s",a);
int i,j;
i= strlen(a);
for(j=0; j<100; j++)//赋初值,默厅腔认是很大的负数
{
num[j] = 0;
}
for(j=0; j<i; j++) //循环喊消i次,不是26次
{
num[a[j]-'a']++; //万一是大写呢,该判断的
}
for(j=0;j<26;j++)//共26个字母,不该循环i次
{
b[j]=num[j]/(float)i; //类型转换
if(b[j] > 0.0001)
{
printf("%c出现的频率是%f\n",'a'+j,b[j]); //%s %d 写错了
}
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf("加密后慧御的字符串是%s:",b);
printf("加密前的字符串是%s:",a);
第二个程序:
num[a[j]-'a']++; 中a[ j ] - '纯亩a' 可能小于0,而num[ i ] 中的 i 必须 >= 0
printf("%s出现的频率是%d"做碧森,a[j],b[j]);中的a[ j ] 改成 a 。
printf("加密前的字符串是%s:",a);
第二个程序:
num[a[j]-'a']++; 中a[ j ] - '纯亩a' 可能小于0,而num[ i ] 中的 i 必须 >= 0
printf("%s出现的频率是%d"做碧森,a[j],b[j]);中的a[ j ] 改成 a 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询