三九宝宝网宝宝教育教学论文

字符数组输入的问题c语言

12月26日 编辑 39baobao.com

[c语言二维数组编程问题]#include<stdio.h> void main() { int a[2][3]; int i,j; printf("输入一个2*3整型数组\n"); for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("\n输出一个2*3整...+阅读

一, char text[]={0}; 这里定义数组必须写指明大小.如 char text[128]={0}; 二, void Entertxt(char text[]) { char c; int i=ntext; //这里你的ntext是什么? 哪来的? 值是多少? 如果是用来保存text长度, 就定义int ntext=0;就好了, 不需要用i变量. 可以定义个指针形参来获得长度. system("cls"); printf("输入结束输入并返回主菜单\n请输入内容\n"); printf("%s",text); //这里text没内容, 你想输出什么?当然是乱码了. fflush(stdin); while ((c=getchar())!='') //这里没有问题 { //////////////////////////////////////////// text[i]=c;// i++;/////// 这里三行对应上面说的,ntext保存text长度, ntext=i;//// 改为如下就可以了:///////////////////////////////////////////////////////////// 修改的 /////////////// text[ntext] = c; ntext++;//////////////////////////////////////////// continue;//这据就不需要了,只要没碰到''肯定会继续的 } if(c=='') Menu(); } 整理上述, 建议下成如下:#include#includevoid Entertxt(char text[], int *ntext) { char c; int i = 0; system("cls"); printf("输入结束输入并返回主菜单\n请输入内容\n"); fflush(stdin); while ((c=getchar()) != '') { text[i] = c; i++; } *ntext = i; } int main(void) { int i; int ntext = 0; char text[128]; Entertxt(text, &ntext); for (i = 0; iMenu()->Entertext()->Menu()->Entertext().这样就明显有问题, text数组是在main函数中定义, 你的Menu函数又没形参,你告诉我从main函数开始后,当进到Menu函数后你怎么调用Entertext()给text数 组赋值?就算你是先menu函数,然后再调用Entertext, 到第二次调用menu的时候 你还是没办法调用Entertext对text赋值, 因为menu没有形参,且text不是全局 变量. 另外在没有给text赋值之前printf("%s",text); 是有问题的. 再次, 你是在 Entertext函数中打印, 而这时的text是形参, 是main 函数中text 副本, 函数结束会释放, 所以在下次调用 Entertext函数时打印text还是没 有东西.所以你的逻辑是错误的 .你需要帮忙的话建议你把完整代码帖上来, 我帮你分析.

以下为关联文档:

C语言编程如何自动生成一个二维数组程序主要通过malloc函数动态生成数组,srand和rand函数配合生成随机数据,代码如下, //程序功能,实现自定义m*n二维数组,随机生成给定范围max-min的数组元素 #include#include #inc...

二维数组指针 C语言编程 #include int main() { int a[2][5] = {{1,2,6,3,0},{10,20,40,60,80}}; int i,flag,order,value; while(scanf("%d",&order) == 1) { flag = 1; for(i = 0; i if(order == a...

C语言编程求两个3 3二维数组的和展开全部 int ArraySun(char* arr, int N) { int sum = 0; for(int i = 0 ; i < N; i++) { for(int j= 0; j< N;j++) { sum += arr[i*N +j]; } } return sum; } 大致这个样...

C程序请教二维数组#include <stdio.h> #include <math.h> int main() { int a[4][5]; int i, j, k, s; k = 1; puts("该4行5列的二维数组是:"); for(i = 0; i < 4; ++i) { for(j = 0; j < 5; ++j) {...

求C语言编程:调用函数计算二维数组所有元素的平均值两个for循环 记录二维数组的总值 count+=array[i][j] key记录数组元素个数 key++; 最后 return count/key 或: double avg(int x[10][10]) { int i,j,sum; for(i=0;i<10;i++)...

c语言编程将二维数组a23中的元素按顺序放入一维数组b6中二维 #include <stdio.h> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main(int argc, ch...

c语言程序编程初始化一个5 6的二维数组编写函数使数组中的#include <stdio.h> void func(int *a, int *b, int n) { int i; for(i = 0; i<n; i++) { b[n-i-1] = a[i]; } } int main(void) { int i, j; int a[5][6] = { {1,2,3,4,5,6...

C语言如何动态开辟数组void creat(linklist &L) { int x; L=new Lnode; linklist p,u; p=L; cout>x; while(x>0) {u=new Lnode; u->data=x; p->next=u; p=p->next; cin>>x; } p->next=NULL; }...

C语言程序设计上机实验考试题目功能找出一维和二维数组中的#include<stdlib.h> #include <stdio.h> void maxa(int a[]) { int *p = a; int n = 1; int temp = *p; while( n < 10 ) { n++; p++; if( *p > temp ) temp = *p; } printf...

推荐阅读
图文推荐