为什么我的这个c程序一运行就提示停止工作?

#include<stdio.h>
#define SIZE 10
#define LONG 20
void meau();
void score_browse(char* ,float *);
int main(void)
{
char student_num[SIZE][LONG] = { "20141000", "20141001", "20141002", "20141003", "20141004", "20141005", "20141006" };
float student_score[SIZE] = {91,86,78,76,61,69,81};
int chose;
meau();
scanf("%d", &chose);
switch (chose)
{
case 1:score_browse(student_num, student_score);
}
}
void meau(void)
{
int i;
for (i = 0; i < 18; i++)
printf(" ");
for (i = 0; i < 40; i++)
printf("*");
for (i = 0; i < 18; i++)
printf(" ");
printf("\n");
for (i = 0; i < 34; i++)
printf(" ");
puts("学生成绩管理");
for (i = 0; i < 35; i++)
printf(" ");
puts("1.成绩浏览");
for (i = 0; i < 35; i++)
printf(" ");
puts("2.成绩查询");
for (i = 0; i < 35; i++)
printf(" ");
puts("3.删除成绩");
for (i = 0; i < 35; i++)
printf(" ");
puts("4.添加成绩");
for (i = 0; i < 18; i++)
printf(" ");
for (i = 0; i < 40; i++)
printf("*");
for (i = 0; i < 18; i++)
printf(" ");
printf("\n");
}
void score_browse(char*student_num, float *student_score)
{
int sign;
for (sign = 0; sign < SIZE; sign++)
{
if (student_score[sign] != 0)
{
printf("学号:%s\t", student_num[sign]);
printf("成绩:%f\n", student_score[sign]);
}
}
}
现在正在写第一个功能,可是为什么我一输入1,程序就停止工作了?

#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;
}追问

??

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-14
VS在代码编辑的左边能加断点 打在头上,然后按F10 一步一步来 或者F5到下一个断点 看看停在哪里 看看变量的值 自己找呗追问

我基本知道错误在哪个地方了,就是二维数组在传入函数的时候出问题了,但是我不知道该怎么改。

c语言中一般运行后停止工作有哪些情况
只要编译通过,一般情况下C语言程序停止工作,多为输入输出格式不对,或计算陷入死循环。1、输入输出格式不对。最常见的就是&符号,该有的没有,不该有的打了&符号。例如:int n;scanf("%d",n);n前少打了&符号。编译能通过,执行时就会出现停止工作的情况。2、个别计算陷入死循环的情况,例如:i...

C语言程序运行后 出现exe停止工作 为什么呢?
C语言程序运行出现exe停止工作的原因是因为内存溢出和编译器错误。第一种:内存溢出 内存溢出(out of memory)通俗理解就是内存不够,程序所需要的内存远远超出了主机内安装的内存所承受大小,就叫内存溢出。系统会提示内存溢出,有时候会自动关闭软件,重启电脑或者软件后释放掉一部分内存又可以正常运行该软...

...运行出现程序已停止工作,请高手帮忙为什么运行界面显示此程序已停...
可能有几种情况:1.程序没有等待输入输出,很快的运行完毕并退出了 2.程序没有等待输入,很快计算完毕输出并退出了 3.程序一运行就出错退出了 你没说详细情况也没有代码,不明白你说的是哪种情况,你到命令行下,进到程序所在目录,手动输入程序名并回车,看看命令上有无提示信息吧 ...

为什么执行c语言程序时,就会出现编程软件停止工作
有可能是程序中有死循环、或者编译有问题

c语言exe已停止工作怎么解决
这可能涉及到错误消息、错误代码或程序的行为。在C语言中,一些常见的问题源包括:1. 语法错误:检查代码中是否有明显的语法错误,例如丢失的分号、括号不匹配、不正确的变量声明等。2. 内存管理问题:确保你没有尝试访问已经释放的内存,或者分配了过多的内存但未释放。3. 函数调用问题:确保所有的函数...

一运行C语言程序 就提示程序已经停止工作
试试重新建立工程,编译以下空代码的程序:int main(){}如果这个空代码编译运行不出问题,说明你的程序在调用scanf或者调用指针时候有内存上的错误出现。(仔细查看代码中的scanf和指针调用时的内存使用错误,也可以把所有用到指针和scanf的地方先屏蔽,找出哪个地方内存分配不对)。如果这个空代码运行也出...

求助大神为什么我用c语言编写的程序运行的时候显示程序停止工作?
scanf语句和printf语句都有错误。正确的代码如下:scanf("%lf",&fRadius);printf("圆的面积为: %lf\\n",fResult);是%lf,而不是%If,scanf语句中,,&fRadius在""后面,而不是在""里面。

C语言编程的时候出现“程序已停止工作”的原因有哪些?
\\x0d\\x0a如果没有加&, scanf会把变量当作地址来用,而你的程序中又没有以变量为地址的变量,操作系统不允许程序读写程序规定范围以外的空间。出于安全起见,操作系统将其紧急中止。就发生了“***.exe已停止工作”的效果。\\x0d\\x0a如果你正在学习数组,请检查:\\x0d\\x0a数组是否越界。定义为...

为什么C语言程序运行时出现exe停止工作,但可以输出结果,用的是vc6...
你定义 数组 long int r[39];表示该数组元素个数为39个,数组下标是从0开始算起的,也就是说r[0] 为第一个元素,地39个元素应该是r[38], 所以你检查一下自己的程序,看看是不是两个循环里面都会出现,r[39]的情况?r[39]表示第40个元素,数组越界,程序就崩溃了,所以才出现exe停止运行...

在运行C语言程序时为什么就提示程序已停止工作?
而你程序中,传递的是a b本身的值(可能是0,可能是1,可能是任意的数),scanf()将这两个值当作地址去操作,因此会产生系统错误,导致程序运行停止。C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言...

相似回答