導航:首頁 > 編程語言 > oj編程第一道題

oj編程第一道題

發布時間:2023-02-16 23:34:34

① 請教一道杭電oj 2017的編程題,請教高手來解答啊


/*
杭電oj 2017的編程題
*/

#include<stdio.h>
#include<string.h>
int main()
{
int i,j,n;

while(scanf("%d",&n)!=EOF)//n 字元串個數
{ char a[100][1000];
//下一步改正
char (*p)[1000]=&a[0];//指向一維數組的char型指針變數
int cout[1000]={0};
for(i=0;i<n;i++)
{
gets(a[i]);//n 個字元串

}
for(i=0;i<n;i++)
{
for(j=0;j<strlen(a[i]);j++)
{
if( *(*(p+i)+j) <='9' && *(*(p+i)+j) >='0' )
{
cout[i]++;
}
}

}
for(i=0;i<n;i++)
{
printf("%d\n",cout[i]);
}

}

return 0;

}

② 大家幫看一下OJ上的一道C語言的題。謝謝!!

在s[j 1]=s[i];語句後加語句j ;我只看出這一點,如果不對,見諒!Helloyujingping2009,希望有幫助.更多到軟體測試基地,365testing泡泡

③ 南陽理工OJ第一題A+B problem 用java編程在eclipse上能運行正確,為什麼在OJ上提交時總是CompileError!

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int a = cin.nextInt(), b = cin.nextInt();
System.out.println(a + b);
}
}

用這個試試

④ C語言 OJ系統題目

那麼問題在於:
1 . 輸入的是整數,沒說明是正整數,所以說輸入的可能是-100,那麼上述代碼就有邏輯問題。
2. i和N的值應該在while循環裡面從新賦值為i=1,N=0。否則隨著迭代的增加,i和N就會是上次計算的值了。
#include<stdio.h>
int main()
{
int i=1,n,N=0;
while((scanf("%d",&n))!=EOF)
{
i=1, N=0;
if(n>=1)
{
while(i<=n)
{
N=N+i;
i++;
}
}
else{ // n為負數,不是要continue,而也是要計算。比如n=-2,就計算1+0+(-1)+(-2)
while(i>=n)
{
N=N+i;
i--;
}
}
printf("%d\n",N);
}
return 0;
}

⑤ 關於C語言OJ的一道題:Time Limit Exceeded

調試了一下你的代碼

有兩個問題:

  1. 如果ori字元串本身比pat短,是不需要匹配的,直接結果0

  2. 如果已經有i個字元匹配,測試第4組數是,pat從頭開始匹配,而實際上是從pat下標為3的地方開始匹配

最後,代碼太多邏輯判斷影響速度,附KMP函數代碼

intKMP(char*ori,char*pat)
{
char*temp,*p;
intnum=strlen(pat);
inti=0,j=0;
int*next;
intsum=0;
//求出next數組
next=(int*)malloc((num+1)*sizeof(int));
memset((int*)next,0,(num+1)*sizeof(int));
p=temp=pat;
pat++;
while(*pat)
{
if(*pat==*temp)
{
*(next+i+2)=j+1;
pat++;
temp++;
j++;
}
else
{
pat++;
j=0;
}
i++;
}
//匹配字元串
pat=p;
i=0;
while(*ori)
{
if(strlen(ori)<strlen(pat))
break;
if(*ori==*pat)
{
ori++;
pat++;
i++;
if(*pat=='')
{
sum++;
pat=p+next[i];
i=next[i];
}
}
else
{
if(i==0)
ori++;
pat=p+next[i];
i=next[i];
}
}
returnsum;
}

next多申請了一個,主要為了存當已匹配匹配0個時對應數字

⑥ 一道入門編程題 杭電oj 2022.高手幫下~!!!

大概看了一下程序,應該是范圍問題吧,他最低給到了-2147483648分,已經超出了int范圍,用更大范圍的數試試,c有點忘了,准備往java方向發展哈

⑦ 一道oj上的編程題c語言

#include <stdio.h>
int main() {
int n,m,i,j,t;
scanf("%d%d",&n,&m);
int arr[m];

for(j=0;j<m;j++) arr[j]=0; /*初始化*/

for(i=0; i<n; i++)
for(j=0; j<m; j++) {
scanf("%d",&t);
arr[j]+=t;
}

for(j=0; j<m; j++) {
printf("%d",arr[j]);
if(j<m-1) printf(" ");
}
}

⑧ 關於杭電OJ第一題的問題,還有順便把提交後的系統給的狀態簡單解釋一下吧,謝謝啦

Process to end of file就是處理到文件的結束

第一個main()打錯了,並且只處理一組數據,沒有處理到文件的結束。
第二個 while(scanf("%d%d", &i, &j) == 2) 的意思是當輸入兩個有效數字時,就執行循環,當處理到文件的結束時(即為-1),停止循環。
此句也可改為 while(scanf("%d%d", &i, &j) !=EOF) ,EOF就是end of file,其值為-1

⑨ 杭電OJ 第一題 1000 為什麼超時

你的true始終是真,因此會一直要求輸入,所以會超時,上面的話你把輸入放在判斷出,那麼當你輸入到最後也就是不想再輸入的時候他會停止的

⑩ C++OJ編程題

(1)每次讀出一行,放到緩沖字元串裡面。
(2)整形:跳過字元串前面的空白、tab等看不見的字元,找到首字元位置。
(3)判斷是否以//開頭。是則讀下一行;否則列印該行。

閱讀全文

與oj編程第一道題相關的資料

熱點內容
加密晶元的計算方法 瀏覽:187
手機存儲為什麼找不到微信文件夾 瀏覽:695
msf埠遷移命令 瀏覽:880
工商app積分怎麼查詢 瀏覽:143
鐵路app怎麼買火車票 瀏覽:309
移魅族除的app怎麼添加 瀏覽:240
兔籠子大號加密 瀏覽:171
單片機程序燒錄操作成功 瀏覽:878
指標高拋低吸點位源碼 瀏覽:205
25匹壓縮機銅管 瀏覽:570
單片機單燈左移05 瀏覽:150
買伺服器練手什麼配置 瀏覽:783
伺服器被毀該怎麼辦 瀏覽:939
python私有庫 瀏覽:514
Python有中文嗎 瀏覽:736
麥塊的伺服器為什麼都進不去 瀏覽:474
新買的伺服器如何打開 瀏覽:35
安卓軟體游戲怎麼開發 瀏覽:319
用撲克擺愛心解壓神器怎麼擺 瀏覽:70
松下製冷壓縮機 瀏覽:275