2 q793799535 q793799535 于 2016.04.07 18:12 提问

c语言新手,写了个简单程序,没问题啊,怎么就出现这种问题呢,求问 1C

图片说明
这是程序

图片说明
这是输入的数据,3个人名

图片说明
这是出现的异常,不懂是为什么啊?
有人给说说吗

3个回答

herozhangbz
herozhangbz   2016.04.07 19:03

看着像是访问变量出问题了,你怎么不放代码放截图怎么看的清。最好放代码别人好调试

qq423399099
qq423399099   Ds   Rxr 2016.04.07 19:14

楼主这种要存好几个字符串的,要么用二维数组,要么用指针数组

 #include<iostream>
using namespace std;
void main() 
{ 
    int i;
    char *name[4];  //创建指针数组,含有四个元素(每个元素都是一个char *指针)
    printf("学生姓名为:");
    for(i = 0; i < 4; i++)
    {
        name[i] = (char *)malloc(50 *sizeof(char));
        scanf_s("%s", name[i], 50);
    }
    for(i = 0; i < 4; i++)
    {
        printf("%s,", name[i]);
    }
    system("pause");
} 

图片说明

zhlguo335
zhlguo335   2016.04.08 13:13

scanf_s(),第二个参数不对吧,应该是个指针,楼主 的name[i],只是name数组的第 i 个元素。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
贪心算法基础(一)——数列极差
贪心算法的思想就是用局部的最优解,达到最后全局的最优解。贪心算法使用是有限制的,一个问题能不能使用贪心来做,往往我们要对其进行必要的证明。贪心算法策略具有无后向性,也就是当前阶段的状态确定之后,不受后面阶段状态的影响。 现在我们先将一个能使用贪心算法的问题——数列极差。 问题描述:在黑板上写了N个正整数作成的一个数列,进行如下操作:每一次擦去其中的两个数a和b,然后在数列中加入一个数a*b+1
c语言:递归求学生年龄问题
有5个学生坐在一起,问第5个学生的年龄,他说比第4个学生大2岁,问第4个学生的年龄,他说比第3个学生大2岁,问第3个学生的年龄,他说比第2个学生大2岁,问第2个学生的年龄,他说比第1个学生大2岁,问第1个学生的年龄,他说是10岁。问第5个学生的年龄多大?程序:#includeint age(int n){ if (n == 1) { return 10; } else { return (ag
算法设计--众数和重数问题(分治法)
问题描述: 给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。对于给定的n个自然数组成的多重集S,计算S的众数及其重数 。问题分析: 1、 分治法 分治法解题过程主要分为分、治、合三个步骤“,应用该方法的基本过程如下: (1) 将原问题分解为若干个规模较小的子问题
动态规划求解资源分配问题
某厂根据计划安排,拟将n台相同的设备分配给m个车间,各车间获得这种设备后,可以为国家提供盈利Ci j(i台设备提供给j号车间将得到的利润,1≤i≤n,1≤j≤m) 。问如何分配,才使国家得到最大的盈利?
约瑟夫问题(Josephus Problem)4:第k个出列的人是谁
版权所有。所有权利保留。 欢迎转载,转载时请注明出处: 本文是论述约瑟夫问题的第四部分,约瑟夫问题的描述在第一部分,本文用到了第三部分的算法。请先阅读第一部分和第三部分。
10月7日 c语言 函数的递归调用 有5个学生坐在一起,问第五个学生多少岁,比第四个大2岁……最后问第一个学生,他说是10岁
#include int main() { int age(int n); printf("NO.5: age:%d\n",age(5)); return 0; } int age(int n) {  int c;  if (n==1) c=10;  else  c=age(n-1)+2;  return (c); }
某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况?
我这里用两种方法: 1.第一种是高中的全错位排列公式:S=n!(1-1/1!+1/2!-1/3!+...(-1)^n/n!) C++代码如下: #include using namespace std; int main() { int n; cout<<"请输入n:"; cin>>n; int t=1, s=1, sum=0; for(int
(递归)某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。
某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。 import java.util.Scanner; /** * 某人写了n封信和n个信封,如果所有的信都装错了信封。求所有的信都装错信封共有多少种不同情况。 * */ public class LetterWrong { static int n; static int[] arr
C语言 top N问题之返回前面几个最大值的位置以及值
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。 // #include &quot;stdafx.h&quot; #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;algorithm&amp;gt; #include &amp;lt;vector&amp;gt; #include &amp;lt;time.h&amp;gt; using namespace std; #define MA...
C语言:不使用(a+b)/2这种方式(会溢出),求两个数的平均值
#include int average(int x,int y) {        int ret=x-(x-y)/2;      return ret; } int main() {      int a=0;      int b=0;      int ret=0;      scanf("%d%d",&a,&b);      ret=average(a,b);      print