写的如何?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void menu1()
{
int str[100], i, z = 0, x = 0, c = 0, n;
printf("请输入数组元素个数:");
scanf("%d", &n);
printf("请输入数组元素:");
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
if(str[i] > 0)
{
z++;
}
else if(str[i] == 0)
{
x++;
}
else
{
c++;
}
}
printf("正数:%d 个\n零: %d 个\n负数:%d 个\n", z, x, c);
}
void menu2()
{
int a[100], i, j, t, n;
printf("请输入数组元素个数:");
scanf("%d", &n);
printf("请输入数组元素:");
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
}
for(i=0; i<n-1; i++)
{
for(j=0; j<n-1-i; j++)
{
if(a[j] > a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
printf("排序完成\n");
for(i=0; i<n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
}
void menu3()
{
int n, m, i, j, a[50][50], t;
printf("请输入二维数组的行数:");
scanf("%d", &n);
printf("请输入二维数组的列数:");
scanf("%d", &m);
printf("请输入二维数组:\n");
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
scanf("%d", &a[i][j]);
}
}
for(i=0; i<n; i++)
{
for(j=i; j<m; j++)
{
t = a[i][j];
a[i][j] = a[j][i];
a[j][i] = t;
}
}
printf("\n转置后的矩阵\n");
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
}
void menu4()
{
int a[100], i, s = 0, n, max;
printf("请输入数组元素个数:");
scanf("%d", &n);
printf("请输入数组元素:");
for(i=0; i<n; i++)
{
scanf("%d", &a[i]);
s += a[i];
if(i == 0)
{
max = a[0];
}
else
{
if(a[i] > max)
{
max = a[i];
}
}
}
printf("平均值 = %.2f\n最大值 = %d\n", s*1.0/n, max);
}
void menu5()
{
char str1[100];
int a[4] = {0}, i;
printf("请输入字符数组:");
getchar();
gets(str1);
for(i=0; i<strlen(str1); i++)
{
if(str1[i]>='0' && str1[i]<='9')
{
a[0]++;
}
else if(str1[i]>='a' && str1[i]<='z' || str1[i]>='A' && str1[i]<='Z')
{
a[1]++;
}
else if(str1[i] == ' ')
{
a[2]++;
}
else
{
a[3]++;
}
}
printf("数字:%d 个\n字母:%d 个\n空格:%d 个\n其他:%d 个\n", a[0], a[1], a[2], a[3]);
}
int main()
{
while(1)
{
int c;
printf("*************数组应用系统************\n");
printf(" 1.统计数组正负零个数 \n");
printf(" 2.数组的排序 \n");
printf(" 3.二维数组的转置 \n");
printf(" 4.求数组最大值与平均值 \n");
printf(" 5.字符数组统计 \n");
printf(" 6.退出系统 \n");
printf("*************请输入编号选择功能*************\n");
scanf("%d", &c);
switch(c)
{
case 1:
menu1();
break;
case 2:
menu2();
break;
case 3:
menu3();
break;
case 4:
menu4();
break;
case 5:
menu5();
break;
case 6:
printf("感谢使用 程序结束\n");
return 0;
default:
printf("输入错误 请重新输入\n");
}
system("pause");
system("cls");
}
}
没有看出什么明显的错误,写得还是不错的。
如果你们比较卷,可以将数字选择的菜单变成用上下键反向高亮选择的菜单,逼格就更高了。