C语言 输入n(n<10)个字符串,比较字符串大小,输出最大的字符串
这个问题在于没有限制字符串长度。
那么字符串的输入只能用动态数组。
考虑输入之后还需要统计字符串长度做比较。我这里直接定义数据结构(包含字符串内容及字符串长度),这样在输入的同时就记录了长度。
注意:我这里的字符串输入支持空格,你可以输入任意长度的字符串直到回车确认,但没有写退格删除功能。你按了删除键也不做处理。你想添加删除功能自己在我标注的位置加好了,我就不写了。
#include#include#include typedef struct strInfo{ int len; char *str;}SINFO;void meError(void *p);//内存申请失败SINFO *inputStr();//输入任意长度字符串,返回字符串及其长度的数据结构int main(){ int i,max=0,mIndex; SINFO *strs[10]={NULL}; for(i=0;ilen) max=strs[i]->len,mIndex=i; } printf("其中最长的字符串是:%s
长度为:%d
",strs[mIndex]->str,strs[mIndex]->len); return 0;}SINFO *inputStr()//输入任意长度字符串,返回字符串及其长度的数据结构{ int size=1; char inputc,*strSave=NULL; SINFO *newStr=(SINFO *)malloc(sizeof(SINFO)); meError(newStr); newStr->len=0; newStr->str=(char *)malloc(sizeof(char)*size); newStr->str[0]=0; inputc=getch(); while(inputc!='') { if(inputc!=8) { if(inputc!=0) printf("%c",inputc); newStr->str[size-1]=inputc; size++; strSave=(char *)realloc(newStr->str,sizeof(char)*size); meError(strSave); newStr->str=strSave; newStr->str[size-1]=0; inputc=getch(); } else inputc=0;//考虑显示刷新,这里不支持退格删除,按了也作不处理,你想添加删除,可以替换这个else内容!! } printf("
"); newStr->len=size-1; return newStr;}void meError(void *p)//内存申请失败{ if(p==NULL) { printf("
异常:内存申请失败!回车结束程序!
"); while(getch()!=''); exit(0); }}
#include "stdio.h"#include int main(int argc,char *argv[]){char s[101],st[101];int n,ln,t;printf("Please enter n(int n>0)...
");if(scanf("%d",&n)!=1 || n<1){printf("Input error, exit...
");return 0;}ln=100;while(n--){scanf("%100s",s);if((t=strlen(s))<ln){ln=t;strcpy(st,s);}}printf("The shortest string is '%s'.
",st); return 0;}运行们例:
#include<stdio.h>
#include<string.h>
int main()
{
char a[1000][200];
int i,j,k,n;
scanf("%d",&n);
getchar();//吸收回车键
for(i=0;i<n;i++)
{
gets(a[i]);
//getchar();
}
k=0;
for(j=0;j<n;j++)
{
if(strcmp(a[j],a[k])>0)
k=j;
}
printf("%s",a[k]);
return 0;
}
厉狐藿香: for(i=0;getchar()!='\n';i++) { scanf("%d",&n[i]); if(sushu(n[i])) x++; } 这里有很大问题..
墨江哈尼族自治县15272891435: C语言编程题: 输入 n(n<10) 个整数,将它们存入数组 a 中,再输入一个整数 x,然后在数组 a 中查找与 x - ?
厉狐藿香: 我自己写的,你可以参考一下,有问题可以给我留言,或直接Hi我.#include#define M100 seqsrch(r,n)/*在数组r中查找值为n的数*/ { int r[M],int n; { int i; for(i=0;i if(r[i]==n) { printf("查找成功!在数组中的序号为:a[%d]\n",i);break; } if(i==M) printf(...
墨江哈尼族自治县15272891435: C语言:输入n(n<10)个整数,统计其中素数的个数.要求程序由2个文件组成 - ?
厉狐藿香: 你的循环第一个条件就是接收一个字符判断是不是换行,逻辑有问题
墨江哈尼族自治县15272891435: C语言,输入一个正整数n(n<=10),在输入n个整数,定义并调用fun(a,n)函数将数组中的整数逆序存放 - ?
厉狐藿香: #include void fun(int a[100],int n) { int i,t; for(i=0;i{t=a[i];a[i]=a[n-i-1];a[n-i-1]=t;} } void main() { int i,n,a[100]; scanf("%d",&n); for(i=0;iscanf("%d",&a[i]); fun(a,n); for(i=0;iprintf("%d ",a[i]); }
墨江哈尼族自治县15272891435: 编写C语言程序, 从键盘输入一个正整数N(N<=10),并输出?
厉狐藿香: 源程序如下: #include <stdio.h> int main() { int n,i,j,sum=1,t; scanf("%d", &n); for(i=1;i<=n;i++) { t=1; for(j=1;j<=i;j++) { t *= 2; //每次计算2 ^ i 出来 } sum += t; //sum加上算出来的2 ^ i } printf("%d\n", sum); return 0; }
墨江哈尼族自治县15272891435: C语言 输入n(n<10)个字符串,比较字符串大小,输出最大的字符串 - ?
厉狐藿香: #include#include int main() { char a[1000][200]; int i,j,k,n; scanf("%d",&n); getchar();//吸收回车键 for(i=0;i { gets(a[i]); //getchar(); } k=0; for(j=0;j { if(strcmp(a[j],a[k])>0) k=j; }printf("%s",a[k]); return 0; }
墨江哈尼族自治县15272891435: C语言实验题 绝对值排序描述 输入n(n<=100)个整数,按照绝对值从大到小排序后输出.题目保证对于每一个测试实例,所有的数的绝对值都不相等. 输入 ... - ?
厉狐藿香:[答案] 任何排序算法都涉及到被排序元素间的“比较”操作,排序算法根据元素比较的结果执行相应的元素移动操作,因此,“比... 该比较函数中执行的是绝对值比较而不是真值比较,C语言的库函数 void qsort(void *base, size_t num, size_t width, int(__...
墨江哈尼族自治县15272891435: C语言,从键盘输入n(n<10)本书的名称和定价存入结构数组中,查找定价最高和最低的书并输出名称和定价. - ?
厉狐藿香: 1、首先,定义5个整型变量,实现程序的运算.2、输入方阵的边长,保存在变量n中.3、定义两个整型数组,保存方阵的各元素,以及各数字是否已输出的判断.4、用两层for循环,控制方阵的各元素.5、产生方阵范围内的随机数值,保存在变量r中.6、如果产生的数值已存在,则重新获取随机数.7、将随机数保存到数组中,并设置为已存在.8、最后,按行输出方阵中的各元素.
墨江哈尼族自治县15272891435: 用C语言编写“输入正整数n,n<10,输出1,2,3~n的和” - ?
厉狐藿香: #include int main() { int res=0,value; scanf("%d",&value); for(int a=1;ares+=a; printf("%d",res); system("pause"); return 0; }
墨江哈尼族自治县15272891435: C语言编程:从键盘输入n个数(n<10),找出其中最小值,请编写相应程序 - ?
厉狐藿香: #include <iostream> using namespace std;#define SIZE 10 int main() { int num; cout<<"Input the number of your figures:"; cin>>num; int array[SIZE]; for(int i=0;i<num;i++) { cout<<"Input the "<<i+1<<"th figure:"; cin>>array[i]; } int min = array[...